QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#542192 | #8939. Permutation | ucup-team180# | AC ✓ | 131ms | 3908kb | C++20 | 34.2kb | 2024-08-31 23:20:31 | 2024-08-31 23:20:31 |
Judging History
answer
#pragma region Macros
#ifdef noimi
#pragma comment(linker, "/stack:256000000")
#include "my_template.hpp"
#else
// #pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <immintrin.h>
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <cctype>
#include <cfenv>
#include <cfloat>
#include <chrono>
#include <cinttypes>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdarg>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <fstream>
#include <functional>
#include <immintrin.h>
#include <initializer_list>
#include <iomanip>
#include <ios>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <stack>
#include <streambuf>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>
#ifdef noimi
#define oj_local(a, b) b
#else
#define oj_local(a, b) a
#endif
#define LOCAL if(oj_local(0, 1))
#define OJ if(oj_local(1, 0))
using namespace std;
using ll = long long;
using ull = unsigned long long int;
using i128 = __int128_t;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using ld = long double;
template <typename T> using vc = vector<T>;
template <typename T> using vvc = vector<vc<T>>;
template <typename T> using vvvc = vector<vvc<T>>;
using vi = vc<int>;
using vl = vc<ll>;
using vpi = vc<pii>;
using vpl = vc<pll>;
template <class T> using pq = priority_queue<T>;
template <class T> using pqg = priority_queue<T, vector<T>, greater<T>>;
template <typename T> int si(const T &x) { return x.size(); }
template <class T, class S> inline bool chmax(T &a, const S &b) { return (a < b ? a = b, 1 : 0); }
template <class T, class S> inline bool chmin(T &a, const S &b) { return (a > b ? a = b, 1 : 0); }
vi iota(int n) {
vi a(n);
return iota(a.begin(), a.end(), 0), a;
}
template <typename T> vi iota(const vector<T> &a, bool greater = false) {
vi res(a.size());
iota(res.begin(), res.end(), 0);
sort(res.begin(), res.end(), [&](int i, int j) {
if(greater) return a[i] > a[j];
return a[i] < a[j];
});
return res;
}
// macros
#define overload5(a, b, c, d, e, name, ...) name
#define overload4(a, b, c, d, name, ...) name
#define endl '\n'
#define REP0(n) for(ll jidlsjf = 0; jidlsjf < n; ++jidlsjf)
#define REP1(i, n) for(ll i = 0; i < (n); ++i)
#define REP2(i, a, b) for(ll i = (a); i < (b); ++i)
#define REP3(i, a, b, c) for(ll i = (a); i < (b); i += (c))
#define rep(...) overload4(__VA_ARGS__, REP3, REP2, REP1, REP0)(__VA_ARGS__)
#define per0(n) for(int jidlsjf = 0; jidlsjf < (n); ++jidlsjf)
#define per1(i, n) for(ll i = (n) - 1; i >= 0; --i)
#define per2(i, a, b) for(ll i = (a) - 1; i >= b; --i)
#define per3(i, a, b, c) for(ll i = (a) - 1; i >= (b); i -= (c))
#define per(...) overload4(__VA_ARGS__, per3, per2, per1, per0)(__VA_ARGS__)
#define fore0(a) rep(a.size())
#define fore1(i, a) for(auto &&i : a)
#define fore2(a, b, v) for(auto &&[a, b] : v)
#define fore3(a, b, c, v) for(auto &&[a, b, c] : v)
#define fore4(a, b, c, d, v) for(auto &&[a, b, c, d] : v)
#define fore(...) overload5(__VA_ARGS__, fore4, fore3, fore2, fore1, fore0)(__VA_ARGS__)
#define setbits(j, n) for(ll iiiii = (n), j = lowbit(iiiii); iiiii; iiiii ^= 1 << j, j = lowbit(iiiii))
#define perm(v) for(bool permrepflag = true; (permrepflag ? exchange(permrepflag, false) : next_permutation(all(v)));)
#define fi first
#define se second
#define pb push_back
#define ppb pop_back
#define ppf pop_front
#define eb emplace_back
#define drop(s) cout << #s << endl, exit(0)
#define si(c) (int)(c).size()
#define lb(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define lbg(c, x) distance((c).begin(), lower_bound(all(c), (x), greater{}))
#define ub(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define ubg(c, x) distance((c).begin(), upper_bound(all(c), (x), greater{}))
#define rng(v, l, r) v.begin() + (l), v.begin() + (r)
#define all(c) begin(c), end(c)
#define rall(c) rbegin(c), rend(c)
#define SORT(v) sort(all(v))
#define REV(v) reverse(all(v))
#define UNIQUE(x) SORT(x), x.erase(unique(all(x)), x.end())
template <typename T = ll, typename S> T SUM(const S &v) { return accumulate(all(v), T(0)); }
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define overload2(_1, _2, name, ...) name
#define vec(type, name, ...) vector<type> name(__VA_ARGS__)
#define vv(type, name, h, ...) vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define vvv(type, name, h, w, ...) vector<vector<vector<type>>> name(h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define vvvv(type, name, a, b, c, ...) \
vector<vector<vector<vector<type>>>> name(a, vector<vector<vector<type>>>(b, vector<vector<type>>(c, vector<type>(__VA_ARGS__))))
constexpr pii dx4[4] = {pii{1, 0}, pii{0, 1}, pii{-1, 0}, pii{0, -1}};
constexpr pii dx8[8] = {{1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {0, -1}, {1, -1}};
namespace yesno_impl {
const string YESNO[2] = {"NO", "YES"};
const string YesNo[2] = {"No", "Yes"};
const string yesno[2] = {"no", "yes"};
const string firstsecond[2] = {"second", "first"};
const string FirstSecond[2] = {"Second", "First"};
const string possiblestr[2] = {"impossible", "possible"};
const string Possiblestr[2] = {"Impossible", "Possible"};
void YES(bool t = 1) { cout << YESNO[t] << endl; }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { cout << YesNo[t] << endl; }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { cout << yesno[t] << endl; }
void no(bool t = 1) { yes(!t); }
void first(bool t = 1) { cout << firstsecond[t] << endl; }
void First(bool t = 1) { cout << FirstSecond[t] << endl; }
void possible(bool t = 1) { cout << possiblestr[t] << endl; }
void Possible(bool t = 1) { cout << Possiblestr[t] << endl; }
}; // namespace yesno_impl
using namespace yesno_impl;
#define INT(...) \
int __VA_ARGS__; \
IN(__VA_ARGS__)
#define INTd(...) \
int __VA_ARGS__; \
IN2(__VA_ARGS__)
#define LL(...) \
ll __VA_ARGS__; \
IN(__VA_ARGS__)
#define LLd(...) \
ll __VA_ARGS__; \
IN2(__VA_ARGS__)
#define STR(...) \
string __VA_ARGS__; \
IN(__VA_ARGS__)
#define CHR(...) \
char __VA_ARGS__; \
IN(__VA_ARGS__)
#define DBL(...) \
double __VA_ARGS__; \
IN(__VA_ARGS__)
#define VEC(type, name, size) \
vector<type> name(size); \
IN(name)
#define VECd(type, name, size) \
vector<type> name(size); \
IN2(name)
#define VEC2(type, name1, name2, size) \
vector<type> name1(size), name2(size); \
for(int i = 0; i < size; i++) IN(name1[i], name2[i])
#define VEC2d(type, name1, name2, size) \
vector<type> name1(size), name2(size); \
for(int i = 0; i < size; i++) IN2(name1[i], name2[i])
#define VEC3(type, name1, name2, name3, size) \
vector<type> name1(size), name2(size), name3(size); \
for(int i = 0; i < size; i++) IN(name1[i], name2[i], name3[i])
#define VEC3d(type, name1, name2, name3, size) \
vector<type> name1(size), name2(size), name3(size); \
for(int i = 0; i < size; i++) IN2(name1[i], name2[i], name3[i])
#define VEC4(type, name1, name2, name3, name4, size) \
vector<type> name1(size), name2(size), name3(size), name4(size); \
for(int i = 0; i < size; i++) IN(name1[i], name2[i], name3[i], name4[i]);
#define VEC4d(type, name1, name2, name3, name4, size) \
vector<type> name1(size), name2(size), name3(size), name4(size); \
for(int i = 0; i < size; i++) IN2(name1[i], name2[i], name3[i], name4[i]);
#define VV(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
IN(name)
#define VVd(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
IN2(name)
int scan() { return getchar(); }
void scan(int &a) { cin >> a; }
void scan(long long &a) { cin >> a; }
void scan(char &a) { cin >> a; }
void scan(double &a) { cin >> a; }
void scan(string &a) { cin >> a; }
template <class T, class S> void scan(pair<T, S> &p) { scan(p.first), scan(p.second); }
template <class T> void scan(vector<T> &);
template <class T> void scan(vector<T> &a) {
for(auto &i : a) scan(i);
}
template <class T> void scan(T &a) { cin >> a; }
void IN() {}
void IN2() {}
template <class Head, class... Tail> void IN(Head &head, Tail &...tail) {
scan(head);
IN(tail...);
}
template <class Head, class... Tail> void IN2(Head &head, Tail &...tail) {
scan(head);
--head;
IN2(tail...);
}
template <int p = -1> void pat() {}
template <int p = -1, class Head, class... Tail> void pat(Head &h, Tail &...tail) {
h += p;
pat<p>(tail...);
}
template <typename T, typename S> T ceil(T x, S y) {
assert(y);
return (y < 0 ? ceil(-x, -y) : (x > 0 ? (x + y - 1) / y : x / y));
}
template <typename T, typename S> T floor(T x, S y) {
assert(y);
return (y < 0 ? floor(-x, -y) : (x > 0 ? x / y : x / y - (x % y == 0 ? 0 : 1)));
}
template <typename T, typename S, typename U> U bigmul(const T &x, const S &y, const U &lim) { // clamp(x * y, -lim, lim)
if(x < 0 and y < 0) return bigmul(-x, -y, lim);
if(x < 0) return -bigmul(-x, y, lim);
if(y < 0) return -bigmul(x, -y, lim);
return y == 0 or x <= lim / y ? x * y : lim;
}
template <class T> T POW(T x, int n) {
T res = 1;
for(; n; n >>= 1, x *= x)
if(n & 1) res *= x;
return res;
}
template <class T, class S> T POW(T x, S n, const ll &mod) {
T res = 1;
x %= mod;
for(; n; n >>= 1, x = x * x % mod)
if(n & 1) res = res * x % mod;
return res;
}
vector<pll> factor(ll x) {
vector<pll> ans;
for(ll i = 2; i * i <= x; i++)
if(x % i == 0) {
ans.push_back({i, 1});
while((x /= i) % i == 0) ans.back().second++;
}
if(x != 1) ans.push_back({x, 1});
return ans;
}
template <class T> vector<T> divisor(T x) {
vector<T> ans;
for(T i = 1; i * i <= x; i++)
if(x % i == 0) {
ans.pb(i);
if(i * i != x) ans.pb(x / i);
}
return ans;
}
template <typename T> void zip(vector<T> &x) {
vector<T> y = x;
UNIQUE(y);
for(int i = 0; i < x.size(); ++i) { x[i] = lb(y, x[i]); }
}
template <class S> void fold_in(vector<S> &v) {}
template <typename Head, typename... Tail, class S> void fold_in(vector<S> &v, Head &&a, Tail &&...tail) {
for(auto e : a) v.emplace_back(e);
fold_in(v, tail...);
}
template <class S> void renumber(vector<S> &v) {}
template <typename Head, typename... Tail, class S> void renumber(vector<S> &v, Head &&a, Tail &&...tail) {
for(auto &&e : a) e = lb(v, e);
renumber(v, tail...);
}
template <class S, class... Args> vector<S> zip(vector<S> &head, Args &&...args) {
vector<S> v;
fold_in(v, head, args...);
sort(all(v)), v.erase(unique(all(v)), v.end());
renumber(v, head, args...);
return v;
}
template <typename S> void rearrange(const vector<S> &id) {}
template <typename S, typename T> void rearrange_exec(const vector<S> &id, vector<T> &v) {
vector<T> w(v.size());
rep(i, si(id)) w[i] = v[id[i]];
v.swap(w);
}
// 並び替える順番, 並び替える vector 達
template <typename S, typename Head, typename... Tail> void rearrange(const vector<S> &id, Head &a, Tail &...tail) {
rearrange_exec(id, a);
rearrange(id, tail...);
}
template <typename T> vector<T> RUI(const vector<T> &v) {
vector<T> res(v.size() + 1);
for(int i = 0; i < v.size(); i++) res[i + 1] = res[i] + v[i];
return res;
}
template <typename T> void zeta_supersetsum(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b] += f[b | i];
}
template <typename T> void zeta_subsetsum(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b | i] += f[b];
}
template <typename T> void mobius_subset(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b] -= f[b | i];
}
template <typename T> void mobius_superset(vector<T> &f) {
int n = f.size();
for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b | i] -= f[b];
}
// 反時計周りに 90 度回転
template <typename T> void rot(vector<vector<T>> &v) {
if(empty(v)) return;
int n = v.size(), m = v[0].size();
vector<vector<T>> res(m, vector<T>(n));
rep(i, n) rep(j, m) res[m - 1 - j][i] = v[i][j];
v.swap(res);
}
vector<int> counter(const vector<int> &v, int max_num = -1) {
if(max_num == -1) max_num = MAX(v);
vector<int> res(max_num + 1);
fore(e, v) res[e]++;
return res;
}
// x in [l, r)
template <class T, class S> bool inc(const T &x, const S &l, const S &r) { return l <= x and x < r; }
template <class T, class S> bool inc(const T &x, const pair<S, S> &p) { return p.first <= x and x < p.second; }
// 便利関数
constexpr ll ten(int n) { return n == 0 ? 1 : ten(n - 1) * 10; }
constexpr ll tri(ll n) { return n * (n + 1) / 2; }
// l + ... + r
constexpr ll tri(ll l, ll r) { return (l + r) * (r - l + 1) / 2; }
ll max(int x, ll y) { return max((ll)x, y); }
ll max(ll x, int y) { return max(x, (ll)y); }
int min(int x, ll y) { return min((ll)x, y); }
int min(ll x, int y) { return min(x, (ll)y); }
// bit 演算系
#define bit(i) (1LL << i) // (1 << i)
#define test(b, i) (b >> i & 1) // b の i bit 目が立っているか
ll pow2(int i) { return 1LL << i; }
int topbit(signed t) { return t == 0 ? -1 : 31 - __builtin_clz(t); }
int topbit(ll t) { return t == 0 ? -1 : 63 - __builtin_clzll(t); }
// int lowbit(signed a) { return a == 0 ? 32 : __builtin_ctz(a); }
int lowbit(ull a) { return a == 0 ? 64 : __builtin_ctzll(a); }
// int allbit(int n) { return (1 << n) - 1; }
constexpr ll mask(int n) { return (1LL << n) - 1; }
// int popcount(signed t) { return __builtin_popcount(t); }
// int popcount(ll t) { return __builtin_popcountll(t); }
int popcount(uint64_t t) { return __builtin_popcountll(t); }
static inline uint64_t popcount64(uint64_t x) {
uint64_t m1 = 0x5555555555555555ll;
uint64_t m2 = 0x3333333333333333ll;
uint64_t m4 = 0x0F0F0F0F0F0F0F0Fll;
uint64_t h01 = 0x0101010101010101ll;
x -= (x >> 1) & m1;
x = (x & m2) + ((x >> 2) & m2);
x = (x + (x >> 4)) & m4;
return (x * h01) >> 56;
}
bool ispow2(int i) { return i && (i & -i) == i; }
ll rnd(ll l, ll r) { //[l, r)
#ifdef noimi
static mt19937_64 gen;
#else
static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
#endif
return uniform_int_distribution<ll>(l, r - 1)(gen);
}
ll rnd(ll n) { return rnd(0, n); }
template <class t> void random_shuffle(vc<t> &a) { rep(i, si(a)) swap(a[i], a[rnd(0, i + 1)]); }
int in() {
int x;
cin >> x;
return x;
}
ll lin() {
unsigned long long x;
cin >> x;
return x;
}
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x) { return pair<T, S>(-x.first, -x.second); }
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi - y.fi, x.se - y.se); }
template <class T, class S> pair<T, S> operator+(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi + y.fi, x.se + y.se); }
template <class T> pair<T, T> operator&(const pair<T, T> &l, const pair<T, T> &r) { return pair<T, T>(max(l.fi, r.fi), min(l.se, r.se)); }
template <class T, class S> pair<T, S> operator+=(pair<T, S> &l, const pair<T, S> &r) { return l = l + r; }
template <class T, class S> pair<T, S> operator-=(pair<T, S> &l, const pair<T, S> &r) { return l = l - r; }
// 開閉
template <class T> bool intersect(const pair<T, T> &l, const pair<T, T> &r) { return (l.se < r.se ? r.fi < l.se : l.fi < r.se); }
template <class T> vector<T> &operator++(vector<T> &v) {
fore(e, v) e++;
return v;
}
template <class T> vector<T> operator++(vector<T> &v, int) {
auto res = v;
fore(e, v) e++;
return res;
}
template <class T> vector<T> &operator--(vector<T> &v) {
fore(e, v) e--;
return v;
}
template <class T> vector<T> operator--(vector<T> &v, int) {
auto res = v;
fore(e, v) e--;
return res;
}
template <class T> void connect(vector<T> &l, const vector<T> &r) { fore(e, r) l.eb(e); }
template <class T> vector<T> operator+(const vector<T> &l, const vector<T> &r) {
vector<T> res(max(si(l), si(r)));
rep(i, si(l)) res[i] += l[i];
rep(i, si(r)) res[i] += r[i];
return res;
}
template <class T> vector<T> operator-(const vector<T> &l, const vector<T> &r) {
vector<T> res(max(si(l), si(r)));
rep(i, si(l)) res[i] += l[i];
rep(i, si(r)) res[i] -= r[i];
return res;
}
template <class T> vector<T> &operator+=(const vector<T> &l, const vector<T> &r) {
if(si(l) < si(r)) l.resize(si(r));
rep(i, si(r)) l[i] += r[i];
return l;
}
template <class T> vector<T> &operator-=(const vector<T> &l, const vector<T> &r) {
if(si(l) < si(r)) l.resize(si(r));
rep(i, si(r)) l[i] -= r[i];
return l;
}
template <class T> vector<T> &operator+=(vector<T> &v, const T &x) {
fore(e, v) e += x;
return v;
}
template <class T> vector<T> &operator-=(vector<T> &v, const T &x) {
fore(e, v) e -= x;
return v;
}
template <typename T> struct edge {
int from, to;
T cost;
int id;
edge(int to, T cost) : from(-1), to(to), cost(cost) {}
edge(int from, int to, T cost) : from(from), to(to), cost(cost) {}
edge(int from, int to, T cost, int id) : from(from), to(to), cost(cost), id(id) {}
constexpr bool operator<(const edge<T> &rhs) const noexcept { return cost < rhs.cost; }
edge &operator=(const int &x) {
to = x;
return *this;
}
operator int() const { return to; }
friend ostream operator<<(ostream &os, const edge &e) { return os << e.to; }
};
template <typename T> using Edges = vector<edge<T>>;
template <typename T = int> Edges<T> read_edges(int m, bool weighted = false) {
Edges<T> res;
res.reserve(m);
for(int i = 0; i < m; i++) {
int u, v, c = 0;
scan(u), scan(v), u--, v--;
if(weighted) scan(c);
res.eb(u, v, c, i);
}
return res;
}
using Tree = vector<vector<int>>;
using Graph = vector<vector<int>>;
template <class T> using Wgraph = vector<vector<edge<T>>>;
Graph getG(int n, int m = -1, bool directed = false, int margin = 1) {
Tree res(n);
if(m == -1) m = n - 1;
while(m--) {
int a, b;
cin >> a >> b;
a -= margin, b -= margin;
res[a].emplace_back(b);
if(!directed) res[b].emplace_back(a);
}
return res;
}
Graph getTreeFromPar(int n, int margin = 1) {
Graph res(n);
for(int i = 1; i < n; i++) {
int a;
cin >> a;
res[a - margin].emplace_back(i);
}
return res;
}
template <class T> Wgraph<T> getWg(int n, int m = -1, bool directed = false, int margin = 1) {
Wgraph<T> res(n);
if(m == -1) m = n - 1;
while(m--) {
int a, b;
T c;
scan(a), scan(b), scan(c);
a -= margin, b -= margin;
res[a].emplace_back(b, c);
if(!directed) res[b].emplace_back(a, c);
}
return res;
}
void add(Graph &G, int x, int y) { G[x].eb(y), G[y].eb(x); }
template <class S, class T> void add(Wgraph<S> &G, int x, int y, T c) { G[x].eb(y, c), G[y].eb(x, c); }
#define TEST \
INT(testcases); \
while(testcases--)
i128 abs(const i128 &x) { return x > 0 ? x : -x; }
istream &operator>>(istream &is, i128 &v) {
string s;
is >> s;
v = 0;
for(int i = 0; i < (int)s.size(); i++) {
if(isdigit(s[i])) { v = v * 10 + s[i] - '0'; }
}
if(s[0] == '-') { v *= -1; }
return is;
}
ostream &operator<<(ostream &os, const i128 &v) {
if(v == 0) { return (os << "0"); }
i128 num = v;
if(v < 0) {
os << '-';
num = -num;
}
string s;
for(; num > 0; num /= 10) { s.push_back((char)(num % 10) + '0'); }
reverse(s.begin(), s.end());
return (os << s);
}
namespace aux {
template <typename T, unsigned N, unsigned L> struct tp {
static void output(std::ostream &os, const T &v) {
os << std::get<N>(v) << (&os == &cerr ? ", " : " ");
tp<T, N + 1, L>::output(os, v);
}
};
template <typename T, unsigned N> struct tp<T, N, N> {
static void output(std::ostream &os, const T &v) { os << std::get<N>(v); }
};
} // namespace aux
template <typename... Ts> std::ostream &operator<<(std::ostream &os, const std::tuple<Ts...> &t) {
if(&os == &cerr) { os << '('; }
aux::tp<std::tuple<Ts...>, 0, sizeof...(Ts) - 1>::output(os, t);
if(&os == &cerr) { os << ')'; }
return os;
}
template <typename T, typename S, typename U> std::ostream &operator<<(std::ostream &os, const priority_queue<T, S, U> &_pq) {
auto pq = _pq;
vector<T> res;
while(!empty(pq)) res.emplace_back(pq.top()), pq.pop();
return os << res;
}
template <class T, class S> ostream &operator<<(ostream &os, const pair<T, S> &p) {
if(&os == &cerr) { return os << "(" << p.first << ", " << p.second << ")"; }
return os << p.first << " " << p.second;
}
template <class Ch, class Tr, class Container> std::basic_ostream<Ch, Tr> &operator<<(std::basic_ostream<Ch, Tr> &os, const Container &x) {
bool f = true;
if(&os == &cerr) os << "[";
for(auto &y : x) {
if(&os == &cerr)
os << (f ? "" : ", ") << y;
else
os << (f ? "" : " ") << y;
f = false;
}
if(&os == &cerr) os << "]";
return os;
}
#define dump(...) static_cast<void>(0)
#define dbg(...) static_cast<void>(0)
void OUT() { cout << endl; }
template <class Head, class... Tail> void OUT(const Head &head, const Tail &...tail) {
cout << head;
if(sizeof...(tail)) cout << ' ';
OUT(tail...);
}
template <typename T> static constexpr T inf = numeric_limits<T>::max() / 2;
template <class T, class S> constexpr pair<T, S> inf<pair<T, S>> = {inf<T>, inf<S>};
template <class T> void OUT2(const T &t, T INF = inf<T>, T res = -1) { OUT(t != INF ? t : res); }
template <class T> void OUT2(vector<T> &v, T INF = inf<T>, T res = -1) {
fore(e, v) if(e == INF) e = res;
OUT(v);
fore(e, v) if(e == res) e = INF;
}
template <class F> struct REC {
F f;
REC(F &&f_) : f(forward<F>(f_)) {}
template <class... Args> auto operator()(Args &&...args) const { return f(*this, forward<Args>(args)...); }
};
template <class S> vector<pair<S, int>> runLength(const vector<S> &v) {
vector<pair<S, int>> res;
for(auto &e : v) {
if(res.empty() or res.back().fi != e)
res.eb(e, 1);
else
res.back().se++;
}
return res;
}
vector<pair<char, int>> runLength(const string &v) {
vector<pair<char, int>> res;
for(auto &e : v) {
if(res.empty() or res.back().fi != e)
res.eb(e, 1);
else
res.back().se++;
}
return res;
}
struct string_converter {
char start = 0;
char type(const char &c) const { return (islower(c) ? 'a' : isupper(c) ? 'A' : isdigit(c) ? '0' : 0); }
int convert(const char &c) {
if(!start) start = type(c);
return c - start;
}
int convert(const char &c, const string &chars) { return chars.find(c); }
template <typename T> auto convert(const T &v) {
vector<decltype(convert(v[0]))> ret;
ret.reserve(size(v));
for(auto &&e : v) ret.emplace_back(convert(e));
return ret;
}
template <typename T> auto convert(const T &v, const string &chars) {
vector<decltype(convert(v[0], chars))> ret;
ret.reserve(size(v));
for(auto &&e : v) ret.emplace_back(convert(e, chars));
return ret;
}
int operator()(const char &v, char s = 0) {
start = s;
return convert(v);
}
int operator()(const char &v, const string &chars) { return convert(v, chars); }
template <typename T> auto operator()(const T &v, char s = 0) {
start = s;
return convert(v);
}
template <typename T> auto operator()(const T &v, const string &chars) { return convert(v, chars); }
} toint;
template <class T, class F> T bin_search(T ok, T ng, const F &f) {
while(abs(ok - ng) > 1) {
T mid = ok + ng >> 1;
(f(mid) ? ok : ng) = mid;
}
return ok;
}
template <class T, class F> T bin_search_double(T ok, T ng, const F &f, int iter = 80) {
while(iter--) {
T mid = (ok + ng) / 2;
(f(mid) ? ok : ng) = mid;
}
return ok;
}
struct Setup_io {
Setup_io() {
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cout << fixed << setprecision(11);
}
} setup_io;
#endif
#pragma endregion
int main() {
TEST {
int n;
vi a;
LOCAL {
n = rnd(1, 100);
a = iota(n);
random_shuffle(a);
dump(n, a);
}
else { cin >> n; }
int c = 0;
int sum = 0;
auto ask = [&](int l, int r) {
if(r - l <= 1) return -1;
sum += r - l;
LOCAL {}
else {
if(sum > n * 3) rep(inf<int>) OUT(1);
}
c++;
OUT("?", l + 1, r);
cout.flush();
LOCAL {
vpi v;
rep(i, l, r) v.eb(a[i], i);
SORT(v);
dump(v.end()[-2].se);
return v.end()[-2].se;
}
return in() - 1;
};
auto ans = [&](int i) {
dump(sum);
LOCAL {
assert(i == (max_element(all(a)) - begin(a)));
assert(c <= ceil(log2l(n) * 1.5));
assert(n * 3 >= sum);
}
else {
if(sum > n * 3) rep(inf<int>) OUT(1);
}
OUT("!", i + 1);
cout.flush();
};
REC([&](auto &&f, int l, int r, int k = -1) -> void {
dump(l, r, k);
if(r - l == 1) {
ans(l);
return;
}
if(k != -1) {
if(r - l == 2) {
ans(l ^ (l + 1) ^ k);
return;
}
int mid = (l + r) >> 1;
if(k < mid or ((r - l) & 1 and mid == k)) {
if((r - l) & 1 and mid == k) mid++;
if(ask(l, mid) == k)
f(l, mid, k);
else
f(mid, r);
} else {
if((r - l) & 1) mid++;
if(ask(mid, r) == k)
f(mid, r, k);
else
f(l, mid);
}
return;
}
if(r - l == 2) {
ans(l ^ (l + 1) ^ ask(l, r));
} else if(r - l == 3) {
int x = ask(l, r);
if(x <= l + 1) {
if(x == ask(l, l + 2))
ans(l ^ (l + 1) ^ x);
else
ans(l + 2);
} else {
if(x == ask(l + 1, l + 3))
ans((l + 1) ^ (l + 2) ^ x);
else { ans(l); }
}
return;
} else {
vi v;
vi w;
rep(i, 4) w.eb((r - l + i) / 4);
v.eb(l);
SORT(w);
REV(w);
w.eb(w.front());
w.erase(begin(w));
fore(e, w) v.eb(v.back() + e);
auto g = [&](int i) {
rep(j, 1, si(v)) {
if(i < v[j]) return j - 1;
}
};
dump(v);
int x = ask(l, r);
int xp = g(x);
if(xp == 0) {
v = vi(rng(v, 0, 1));
SORT(w);
// REV(w);
v.resize(1);
fore(e, w) v.eb(v.back() + e);
int y = ask(v[0], v[2]);
if(x == y)
f(v[0], v[2], x);
else {
if(x == ask(x, v[3])) {
f(v[2], v[3]);
} else {
f(v[3], v[4]);
}
}
} else if(xp <= 2) {
if(ask(v[1], v[3]) == x) {
f(v[1], v[3], x);
} else {
if(x == ask(v[0], x + 1)) {
f(v[0], v[1]);
} else {
f(v[3], v[4]);
}
}
} else {
SORT(w);
REV(w);
v.resize(1);
fore(e, w) v.eb(v.back() + e);
if(ask(v[2], v[4]) == x) {
f(v[2], v[4], x);
} else {
if(ask(v[1], x + 1) == x) {
f(v[1], v[2]);
} else {
f(v[0], v[1]);
}
}
}
}
})
(0, n);
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3864kb
input:
3 5 3 2 2 5 6 6 5 3 1 4 3 2 2
output:
? 1 5 ? 2 3 ? 1 3 ? 4 5 ! 4 ? 1 6 ? 5 6 ? 3 6 ? 1 2 ! 2 ? 1 4 ? 2 3 ? 1 3 ! 4
result:
ok Correct (3 test cases)
Test #2:
score: 0
Accepted
time: 43ms
memory: 3596kb
input:
10000 10 2 2 1 3 10 10 7 10 5 4 10 5 5 4 6 10 4 6 4 2 1 10 10 9 6 3 2 10 3 3 4 2 10 1 4 5 9 9 10 1 3 1 5 6 10 2 4 4 9 8 10 3 3 3 10 4 7 1 8 9 10 8 7 7 1 2 10 4 5 1 9 8 10 7 7 6 4 10 5 7 1 8 8 10 8 8 7 9 10 2 1 2 7 7 10 6 4 4 10 10 10 1 3 1 5 6 10 7 5 7 1 2 10 7 4 7 1 2 10 3 4 4 10 10 10 4 4 4 10 8 7...
output:
? 1 10 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 10 ? 7 10 ? 4 10 ? 4 6 ? 4 5 ! 6 ? 1 10 ? 4 7 ? 4 5 ? 6 7 ! 7 ? 1 10 ? 4 7 ? 1 4 ? 1 3 ? 1 2 ! 3 ? 1 10 ? 7 10 ? 4 10 ? 1 3 ? 2 3 ! 1 ? 1 10 ? 1 4 ? 3 4 ? 1 2 ! 1 ? 1 10 ? 1 4 ? 1 7 ? 8 10 ? 8 9 ! 8 ? 1 10 ? 1 4 ? 1 7 ? 5 7 ? 5 6 ! 7 ? 1 10 ? 1 4 ? 2 7 ? 8 10 ? 8 9 !...
result:
ok Correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 69ms
memory: 3604kb
input:
10000 3 1 2 11 5 5 4 8 7 2 2 19 3 4 3 13 14 12 11 7 5 5 4 3 3 3 19 6 10 6 1 2 1 2 2 15 11 11 11 10 14 1 1 3 5 5 16 4 4 1 8 7 8 3 3 2 19 13 6 13 5 4 5 2 2 4 1 2 3 7 2 2 2 3 2 2 17 1 1 2 8 7 6 14 9 9 9 8 20 9 9 6 13 13 6 4 3 2 5 18 7 7 7 6 9 8 8 6 8 3 8 6 6 5 3 16 10 10 10 10 6 1 2 1 3 10 3 4 3 6 6 2 ...
output:
? 1 3 ? 1 2 ! 3 ? 1 11 ? 4 8 ? 4 5 ? 6 8 ? 7 8 ! 6 ? 1 2 ! 1 ? 1 19 ? 1 9 ? 3 14 ? 10 14 ? 13 14 ? 12 13 ? 10 11 ! 10 ? 1 7 ? 3 5 ? 3 4 ! 3 ? 1 3 ? 2 3 ! 2 ? 1 19 ? 6 14 ? 1 6 ? 1 5 ? 1 2 ? 1 3 ! 3 ? 1 2 ! 1 ? 1 15 ? 5 11 ? 9 11 ? 9 10 ! 9 ? 1 14 ? 1 6 ? 1 3 ? 4 6 ? 4 5 ! 4 ? 1 16 ? 1 8 ? 1 4 ? 5 8 ...
result:
ok Correct (10000 test cases)
Test #4:
score: 0
Accepted
time: 100ms
memory: 3604kb
input:
10000 47 23 31 23 11 9 11 5 5 14 8 8 8 9 25 6 12 6 13 13 7 4 4 3 9 2 2 2 27 27 27 27 26 24 23 21 7 6 7 5 5 43 41 37 21 7 8 7 3 3 22 6 4 14 20 19 17 21 34 29 25 29 17 17 18 16 42 20 20 20 20 21 17 17 47 21 21 21 19 15 16 13 17 41 25 30 11 33 34 33 36 36 19 17 17 16 12 13 12 21 14 14 14 15 11 11 27 2 ...
output:
? 1 47 ? 13 35 ? 1 23 ? 1 12 ? 7 12 ? 4 11 ? 4 6 ? 4 5 ! 4 ? 1 14 ? 5 10 ? 8 10 ? 9 10 ! 10 ? 1 25 ? 1 12 ? 6 18 ? 13 18 ? 13 14 ! 14 ? 1 7 ? 3 5 ? 3 4 ! 5 ? 1 9 ? 1 4 ? 1 2 ! 1 ? 1 27 ? 15 27 ? 22 27 ? 25 27 ? 22 24 ? 23 24 ! 22 ? 1 21 ? 6 15 ? 1 7 ? 1 5 ? 4 5 ! 4 ? 1 43 ? 23 43 ? 12 41 ? 1 11 ? 4 ...
result:
ok Correct (10000 test cases)
Test #5:
score: 0
Accepted
time: 95ms
memory: 3596kb
input:
10000 100 47 47 48 61 68 53 71 72 71 69 9 2 2 1 4 53 46 35 15 6 6 6 6 33 3 16 16 31 31 30 32 82 60 60 42 29 36 29 23 24 22 26 88 39 39 25 59 59 59 60 56 57 71 24 29 17 59 59 59 60 61 92 52 45 45 88 88 88 89 91 91 24 11 9 11 5 6 5 3 66 51 51 66 45 45 43 39 40 39 92 43 50 43 20 20 21 17 17 48 1 1 1 5 ...
output:
? 1 100 ? 26 75 ? 26 50 ? 51 75 ? 57 68 ? 51 61 ? 69 75 ? 71 73 ? 69 71 ? 69 70 ! 70 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 3 ? 1 53 ? 28 53 ? 15 46 ? 1 14 ? 5 10 ? 5 7 ? 5 6 ! 5 ? 1 33 ? 1 16 ? 3 24 ? 25 33 ? 30 33 ? 30 31 ? 32 33 ! 33 ? 1 82 ? 22 61 ? 42 61 ? 22 41 ? 27 36 ? 22 29 ? 22 26 ? 23 24 ? 22 23 ? 25 ...
result:
ok Correct (10000 test cases)
Test #6:
score: 0
Accepted
time: 131ms
memory: 3656kb
input:
10000 50 10 10 10 7 2 1 2 3 50 11 11 9 18 16 16 23 22 50 44 40 44 20 21 17 26 25 26 50 24 14 14 45 41 40 49 48 49 50 50 50 50 50 49 47 47 50 36 23 36 12 12 11 8 8 50 29 20 29 13 12 6 3 2 1 50 30 22 30 1 1 1 2 50 25 25 15 30 31 30 27 26 50 18 20 1 49 47 47 39 40 39 50 9 9 9 9 7 11 10 50 26 26 34 17 1...
output:
? 1 50 ? 1 24 ? 1 12 ? 7 12 ? 1 6 ? 1 2 ? 2 4 ? 3 4 ! 4 ? 1 50 ? 1 24 ? 1 12 ? 13 24 ? 16 21 ? 13 18 ? 22 24 ? 22 23 ! 24 ? 1 50 ? 27 50 ? 14 44 ? 14 26 ? 17 22 ? 14 20 ? 23 26 ? 25 26 ? 24 26 ! 24 ? 1 50 ? 14 37 ? 1 24 ? 38 50 ? 41 46 ? 38 45 ? 47 50 ? 48 49 ? 47 49 ! 47 ? 1 50 ? 27 50 ? 39 50 ? 45...
result:
ok Correct (10000 test cases)
Test #7:
score: 0
Accepted
time: 128ms
memory: 3664kb
input:
10000 100 76 78 35 5 5 3 9 9 100 29 66 29 20 20 20 22 24 23 100 64 38 38 88 88 90 86 87 84 83 100 51 57 15 98 92 92 79 78 77 81 100 44 75 44 13 13 17 12 11 11 7 100 64 64 62 41 41 41 42 40 39 100 93 56 93 40 32 32 44 44 45 100 37 37 33 57 60 54 74 75 73 70 100 76 76 76 76 80 86 87 86 85 100 32 32 32...
output:
? 1 100 ? 51 100 ? 26 76 ? 1 25 ? 1 12 ? 1 6 ? 7 12 ? 9 10 ! 10 ? 1 100 ? 26 75 ? 1 29 ? 1 25 ? 14 25 ? 20 25 ? 20 22 ? 23 25 ? 23 24 ! 25 ? 1 100 ? 26 75 ? 1 64 ? 76 100 ? 82 93 ? 88 93 ? 82 87 ? 86 87 ? 84 86 ? 82 83 ! 82 ? 1 100 ? 26 75 ? 1 51 ? 76 100 ? 89 100 ? 83 98 ? 76 82 ? 78 80 ? 76 79 ? 8...
result:
ok Correct (10000 test cases)
Test #8:
score: 0
Accepted
time: 4ms
memory: 3904kb
input:
1000 1000 475 728 426 896 896 929 867 867 869 858 860 851 847 848 847 1000 278 278 446 598 598 573 679 665 679 652 647 652 645 645 1000 75 128 75 607 644 604 713 732 695 749 745 749 742 741 742 1000 239 239 45 432 350 350 442 442 451 458 458 459 462 463 461 1000 978 978 978 978 997 914 902 882 932 9...
output:
? 1 1000 ? 251 750 ? 1 475 ? 751 1000 ? 814 937 ? 876 937 ? 814 875 ? 846 875 ? 861 875 ? 846 860 ? 854 860 ? 850 858 ? 846 849 ? 847 848 ? 846 847 ! 846 ? 1 1000 ? 251 750 ? 251 500 ? 501 750 ? 564 687 ? 564 625 ? 626 687 ? 658 687 ? 642 679 ? 642 657 ? 646 653 ? 642 652 ? 642 645 ? 644 645 ! 644 ?...
result:
ok Correct (1000 test cases)
Test #9:
score: 0
Accepted
time: 30ms
memory: 3632kb
input:
1017 272 246 186 246 111 110 111 73 73 73 73 114 105 91 91 2 2 2 2 2 910 173 173 173 127 14 14 28 56 56 51 44 45 47 48 726 229 517 229 118 63 118 28 28 28 28 27 24 24 861 315 315 344 491 551 461 632 641 614 593 593 594 597 596 1984 133 133 406 571 571 512 724 704 704 650 650 650 651 645 646 647 1145...
output:
? 1 272 ? 137 272 ? 69 246 ? 69 136 ? 86 119 ? 69 111 ? 69 85 ? 73 80 ? 73 76 ? 73 74 ! 74 ? 1 114 ? 59 114 ? 30 105 ? 1 29 ? 1 14 ? 1 7 ? 1 3 ? 1 2 ! 1 ? 1 910 ? 1 454 ? 1 227 ? 115 227 ? 1 114 ? 1 56 ? 1 28 ? 29 56 ? 43 56 ? 50 56 ? 43 49 ? 43 45 ? 44 47 ? 48 49 ! 49 ? 1 726 ? 183 544 ? 1 229 ? 1 ...
result:
ok Correct (1017 test cases)
Test #10:
score: 0
Accepted
time: 0ms
memory: 3864kb
input:
10 100000 3893 3893 3505 30673 33920 30673 43582 43582 43582 43582 43470 43242 43197 43046 43289 43298 43289 43268 43268 43263 43273 43274 43273 43272 100000 32066 54928 19090 88585 88585 88585 89959 93282 93193 93193 90979 90917 90917 91257 91225 91257 91325 91339 91312 91348 91349 91348 91354 9135...
output:
? 1 100000 ? 1 50000 ? 1 25000 ? 25001 50000 ? 25001 37500 ? 30673 43750 ? 37501 43750 ? 40627 43750 ? 42189 43750 ? 42970 43750 ? 43361 43750 ? 42970 43360 ? 43068 43262 ? 42970 43242 ? 43263 43360 ? 43288 43335 ? 43263 43289 ? 43263 43287 ? 43263 43274 ? 43263 43268 ? 43269 43274 ? 43273 43274 ? 4...
result:
ok Correct (10 test cases)
Test #11:
score: 0
Accepted
time: 1ms
memory: 3660kb
input:
21 84335 47947 60969 47947 9296 11772 1509 20931 19830 20931 17510 17606 17510 17352 17352 17352 17346 17316 17316 17308 17320 17320 17321 17323 159962 128177 145530 128177 54814 69184 54814 49869 48003 49869 43214 43214 43214 43231 43550 43608 43489 43675 43675 43670 43695 43695 43695 43696 43692 4...
output:
? 1 84335 ? 21085 63251 ? 1 47947 ? 1 21084 ? 5272 15813 ? 1 9296 ? 15814 21084 ? 18450 21084 ? 17132 20931 ? 17132 18449 ? 17462 18119 ? 17132 17510 ? 17132 17461 ? 17215 17378 ? 17297 17378 ? 17338 17378 ? 17297 17337 ? 17307 17326 ? 17307 17316 ? 17317 17326 ? 17320 17323 ? 17320 17321 ? 17322 17...
result:
ok Correct (21 test cases)
Test #12:
score: 0
Accepted
time: 1ms
memory: 3692kb
input:
1 1000000 641602 418256 169407 783270 783270 783270 783270 783270 786055 794273 791414 790964 796734 796734 796734 796734 796686 796850 796850 796850 796851 796864 796864 796864 796863 796861
output:
? 1 1000000 ? 250001 750000 ? 1 641602 ? 750001 1000000 ? 750001 875000 ? 750001 812500 ? 781251 812500 ? 781251 796875 ? 781251 789062 ? 789063 796875 ? 791016 794921 ? 789063 794273 ? 794922 796875 ? 795900 796875 ? 796388 796875 ? 796632 796875 ? 796632 796753 ? 796754 796875 ? 796816 796875 ? 79...
result:
ok Correct (1 test case)
Test #13:
score: 0
Accepted
time: 2ms
memory: 3600kb
input:
16 232936 229707 229707 229707 229707 229707 231039 223556 220604 218882 224031 224548 224548 225261 225261 225290 225375 225395 225323 225407 225409 225417 225425 225425 225425 8676 6498 6498 6498 5867 4978 4978 5022 4731 4731 4731 4717 4684 4692 4684 4699 4697 4699 4695 221085 172303 209705 142841...
output:
? 1 232936 ? 116469 232936 ? 174703 232936 ? 203820 232936 ? 218379 232936 ? 225658 232936 ? 218379 225657 ? 220199 223837 ? 218379 223556 ? 223838 225657 ? 223838 224747 ? 224031 225202 ? 225203 225657 ? 225203 225429 ? 225203 225315 ? 225316 225429 ? 225345 225400 ? 225316 225375 ? 225401 225429 ?...
result:
ok Correct (16 test cases)
Test #14:
score: 0
Accepted
time: 52ms
memory: 3596kb
input:
1994 667 666 667 665 167 166 166 42 41 41 11 10 10 3 2 374 373 374 372 94 93 93 24 23 23 6 5 5 2 488 486 488 485 122 121 121 31 30 30 8 7 7 2 922 921 922 920 231 230 230 58 57 57 15 14 14 4 3 3 639 637 639 636 160 159 159 40 39 39 10 9 9 3 2 353 350 353 349 89 88 88 23 22 22 6 5 5 2 71 66 71 65 18 1...
output:
? 1 667 ? 335 667 ? 168 666 ? 1 167 ? 85 167 ? 43 167 ? 1 42 ? 23 42 ? 12 42 ? 1 11 ? 7 11 ? 4 11 ? 1 3 ? 2 3 ! 1 ? 1 374 ? 189 374 ? 95 373 ? 1 94 ? 49 94 ? 25 94 ? 1 24 ? 13 24 ? 7 24 ? 1 6 ? 5 6 ? 3 6 ? 1 2 ! 1 ? 1 488 ? 245 488 ? 123 486 ? 1 122 ? 63 122 ? 32 122 ? 1 31 ? 17 31 ? 9 31 ? 1 8 ? 5 ...
result:
ok Correct (1994 test cases)
Test #15:
score: 0
Accepted
time: 4ms
memory: 3808kb
input:
18 153667 153667 153666 153666 38417 38416 38416 9605 9604 9604 2402 2401 2401 601 600 600 151 150 150 38 37 37 10 9 9 3 2 211376 211374 211376 211373 52844 52843 52843 13211 13210 13210 3303 3302 3302 826 825 825 207 206 206 52 51 51 13 12 12 4 3 3 195330 195326 195330 195325 48833 48832 48832 1220...
output:
? 1 153667 ? 76835 153667 ? 38418 153667 ? 1 38417 ? 19210 38417 ? 9606 38417 ? 1 9605 ? 4804 9605 ? 2403 9605 ? 1 2402 ? 1203 2402 ? 602 2402 ? 1 601 ? 302 601 ? 152 601 ? 1 151 ? 77 151 ? 39 151 ? 1 38 ? 21 38 ? 11 38 ? 1 10 ? 7 10 ? 4 10 ? 1 3 ? 2 3 ! 1 ? 1 211376 ? 105689 211376 ? 52845 211374 ?...
result:
ok Correct (18 test cases)
Test #16:
score: 0
Accepted
time: 0ms
memory: 3828kb
input:
1 1000000 999998 1000000 999997 250000 249999 249999 62500 62499 62499 15625 15624 15624 3907 3906 3906 977 976 976 245 244 244 62 61 61 16 15 15 4 3 3
output:
? 1 1000000 ? 500001 1000000 ? 250001 999998 ? 1 250000 ? 125001 250000 ? 62501 250000 ? 1 62500 ? 31251 62500 ? 15626 62500 ? 1 15625 ? 7814 15625 ? 3908 15625 ? 1 3907 ? 1955 3907 ? 978 3907 ? 1 977 ? 490 977 ? 246 977 ? 1 245 ? 124 245 ? 63 245 ? 1 62 ? 33 62 ? 17 62 ? 1 16 ? 9 16 ? 5 16 ? 1 4 ? ...
result:
ok Correct (1 test case)
Test #17:
score: 0
Accepted
time: 24ms
memory: 3828kb
input:
1994 667 666 454 454 27 27 27 28 2 2 2 2 374 372 224 224 91 67 67 16 14 16 5 6 3 2 488 485 370 161 83 44 83 15 14 15 6 3 6 2 922 921 662 279 40 40 40 51 24 26 18 7 8 3 2 639 639 421 421 147 95 68 2 2 2 2 2 353 351 200 200 27 44 27 22 17 8 2 2 71 71 47 47 6 8 6 3 2 3 24 22 24 7 2 2 567 563 332 205 3 ...
output:
? 1 667 ? 335 667 ? 168 666 ? 1 167 ? 1 83 ? 1 41 ? 22 41 ? 1 21 ? 1 10 ? 1 5 ? 1 2 ! 1 ? 1 374 ? 189 374 ? 95 372 ? 1 94 ? 49 94 ? 25 91 ? 1 24 ? 7 18 ? 1 16 ? 1 6 ? 5 6 ? 3 5 ? 1 2 ! 1 ? 1 488 ? 245 488 ? 123 485 ? 1 122 ? 32 91 ? 1 83 ? 1 31 ? 9 23 ? 1 15 ? 1 8 ? 3 6 ? 1 6 ? 1 2 ! 1 ? 1 922 ? 463...
result:
ok Correct (1994 test cases)
Test #18:
score: 0
Accepted
time: 0ms
memory: 3648kb
input:
18 153667 153667 101545 50668 27244 25988 27244 8350 5820 3091 1644 1499 1644 306 198 306 24 24 24 21 16 12 12 3 2 3 211376 211375 173406 91641 36438 33589 36438 4235 8112 4235 3075 2649 973 436 539 436 79 135 79 10 10 10 8 2 2 2 195330 195325 161600 161600 36944 36871 17928 1018 1018 1018 1018 923 ...
output:
? 1 153667 ? 76835 153667 ? 38418 153667 ? 1 38417 ? 9605 28812 ? 1 27244 ? 1 9604 ? 4803 9604 ? 2402 8350 ? 1 2401 ? 601 1800 ? 1 1644 ? 1 600 ? 151 450 ? 1 306 ? 1 150 ? 1 74 ? 1 37 ? 20 37 ? 1 19 ? 11 19 ? 6 16 ? 1 5 ? 2 3 ? 1 3 ! 1 ? 1 211376 ? 105689 211376 ? 52845 211375 ? 1 52844 ? 13212 3963...
result:
ok Correct (18 test cases)
Test #19:
score: 0
Accepted
time: 1ms
memory: 3660kb
input:
1 1000000 999998 783271 783271 169408 160728 169408 8002 8002 8002 11377 1522 1522 1522 1781 42 42 42 42 42 43 18 13 18 4 6 4 2
output:
? 1 1000000 ? 500001 1000000 ? 250001 999998 ? 1 250000 ? 62501 187500 ? 1 169408 ? 1 62500 ? 1 31250 ? 1 15625 ? 7814 15625 ? 1 7813 ? 1 3906 ? 1 1953 ? 978 1953 ? 1 977 ? 1 488 ? 1 244 ? 1 122 ? 1 61 ? 32 61 ? 1 31 ? 9 23 ? 1 18 ? 1 8 ? 3 6 ? 1 4 ? 1 2 ! 1
result:
ok Correct (1 test case)
Test #20:
score: 0
Accepted
time: 1ms
memory: 3892kb
input:
1 999999 260772 260772 290183 507886 500600 549347 730076 706326 730076 692862 697541 692649 701051 701051 700204 702009 701978 701978 701202 701249 701331 701361 701361 701361 701361 701359 701355 701356 701354
output:
? 1 999999 ? 250001 749999 ? 250001 499999 ? 500000 749999 ? 500000 624999 ? 507886 687499 ? 687500 749999 ? 703125 734374 ? 687500 730076 ? 687500 703124 ? 691406 699217 ? 687500 692862 ? 699218 703124 ? 700195 702147 ? 700195 701170 ? 701171 702147 ? 701660 702147 ? 701416 702009 ? 701171 701415 ?...
result:
ok Correct (1 test case)
Test #21:
score: 0
Accepted
time: 1ms
memory: 3660kb
input:
1 999998 295598 295598 478874 537464 537464 537464 537464 537464 537464 537464 538126 536777 536777 536869 536275 536350 536275 536162 536156 536162 536208 536209 536208 536195 536197 536194 536200
output:
? 1 999998 ? 250001 749998 ? 250001 499999 ? 500000 749998 ? 500000 624998 ? 500000 562498 ? 531250 562498 ? 531250 546873 ? 531250 539061 ? 535156 539061 ? 537109 539061 ? 535156 537108 ? 536133 537108 ? 536621 537108 ? 536133 536620 ? 536255 536498 ? 536133 536275 ? 536133 536254 ? 536133 536192 ?...
result:
ok Correct (1 test case)
Test #22:
score: 0
Accepted
time: 1ms
memory: 3592kb
input:
1 999997 339297 339297 339297 355318 489939 489939 471212 453304 453304 457018 449645 448004 448004 451724 452409 451218 452873 452842 452687 453059 453067 453059 453017 453013 453017 453005 453006 453002 453007
output:
? 1 999997 ? 250000 749997 ? 250000 499998 ? 250000 374998 ? 374999 499998 ? 437499 499998 ? 468749 499998 ? 437499 468748 ? 445312 460935 ? 453124 460935 ? 445312 453123 ? 447265 451170 ? 445312 449645 ? 451171 453123 ? 451659 452634 ? 451171 451724 ? 452635 453123 ? 452757 453000 ? 452635 452873 ?...
result:
ok Correct (1 test case)
Test #23:
score: 0
Accepted
time: 1ms
memory: 3628kb
input:
1 999996 578161 472988 472988 785834 785834 797735 839217 839217 830420 853100 853969 843753 858027 857481 856101 858782 858873 858439 859300 859300 859303 859239 859239 859239 859239 859240 859237 859237
output:
? 1 999996 ? 250000 749997 ? 1 578161 ? 749998 999996 ? 749998 874996 ? 749998 812496 ? 812497 874996 ? 828122 859371 ? 828122 843746 ? 843747 859371 ? 847653 855464 ? 843747 853100 ? 855465 859371 ? 856442 858394 ? 855465 858027 ? 858395 859371 ? 858639 859126 ? 858395 858782 ? 859127 859371 ? 8591...
result:
ok Correct (1 test case)
Test #24:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
2 500000 114103 114103 98381 180208 207866 168263 220637 220637 222630 228173 228173 228173 227703 226572 226572 226572 226659 226739 226739 226728 226759 226760 226748 226770 226772 226769 226774 500000 313297 313297 285097 246160 246160 246160 238712 230101 230101 228136 222822 223239 222822 22511...
output:
? 1 500000 ? 1 250000 ? 1 125000 ? 125001 250000 ? 156251 218750 ? 125001 180208 ? 218751 250000 ? 218751 234374 ? 218751 226562 ? 226563 234374 ? 226563 230468 ? 226563 228515 ? 227540 228515 ? 226563 227539 ? 226563 227050 ? 226563 226806 ? 226563 226684 ? 226685 226806 ? 226716 226775 ? 226716 22...
result:
ok Correct (2 test cases)
Test #25:
score: 0
Accepted
time: 0ms
memory: 3668kb
input:
2 499999 493493 493493 493493 493493 487773 442491 446831 459196 466355 465991 465991 468187 468187 467811 467320 467320 467320 467320 467320 467329 467345 467345 467344 467342 467341 467342 499999 101651 101651 101651 98374 24247 18123 24247 9237 9237 8975 6777 6574 6777 4671 4669 4671 4261 4261 42...
output:
? 1 499999 ? 250001 499999 ? 375001 499999 ? 437501 499999 ? 468751 499999 ? 437501 468750 ? 437501 453124 ? 442491 460937 ? 460938 468750 ? 462891 466796 ? 460938 466355 ? 466797 468750 ? 467286 468261 ? 467774 468261 ? 467286 467773 ? 467286 467529 ? 467286 467407 ? 467286 467346 ? 467317 467346 ?...
result:
ok Correct (2 test cases)
Test #26:
score: 0
Accepted
time: 0ms
memory: 3660kb
input:
2 499998 367462 193038 367462 89479 89479 81508 53076 53076 49244 46002 45253 42856 39670 39670 39706 40342 40342 40342 40342 40331 40310 40309 40310 40296 40294 40296 40293 499998 122343 3768 122343 313385 324898 313385 278240 279535 274387 252131 252131 252131 252079 253733 253733 253674 253610 25...
output:
? 1 499998 ? 125001 374998 ? 1 367462 ? 1 125000 ? 31251 93750 ? 62501 93750 ? 31251 62500 ? 39064 54687 ? 46876 54687 ? 39064 46875 ? 42970 46875 ? 41017 46002 ? 39064 41016 ? 39552 40527 ? 39552 40039 ? 40040 40527 ? 40162 40405 ? 40284 40405 ? 40284 40344 ? 40315 40344 ? 40284 40314 ? 40300 40314...
result:
ok Correct (2 test cases)
Test #27:
score: 0
Accepted
time: 1ms
memory: 3672kb
input:
2 499997 274071 274071 318426 167121 159831 167121 135636 137448 135636 130923 130923 130923 131482 132171 132428 132002 132679 132679 132661 132735 132735 132725 132743 132746 132737 132750 132749 132748 499997 242708 242708 242708 248273 160791 160791 160791 160791 160791 160496 163029 163029 1629...
output:
? 1 499997 ? 125000 374997 ? 249999 374997 ? 125000 249998 ? 156250 218748 ? 125000 167121 ? 125000 156249 ? 132813 148436 ? 125000 135636 ? 125000 132812 ? 128907 132812 ? 130860 132812 ? 130860 131835 ? 131836 132812 ? 132080 132567 ? 131836 132171 ? 132568 132812 ? 132629 132750 ? 132629 132689 ?...
result:
ok Correct (2 test cases)
Test #28:
score: 0
Accepted
time: 52ms
memory: 3600kb
input:
10000 2 1 2 2 3 2 1 3 3 3 3 1 2 3 1 1 3 3 2 3 2 2 4 3 2 2 4 4 4 4 2 3 1 4 2 2 4 4 3 4 4 3 3 4 3 2 1 4 4 4 4 2 3 1 4 2 2 4 4 3 4 4 3 3 4 1 2 3 4 1 2 1 4 1 2 2 4 1 2 1 4 1 1 4 1 1 4 4 3 3 4 3 2 3 4 4 3 2 4 3 2 3 4 2 3 2 4 2 3 2 5 4 4 5 5 5 5 3 2 2 4 5 3 2 2 5 5 5 4 5 5 4 5 4 5 4 4 5 5 5 5 3 2 2 4 5 3 ...
output:
? 1 2 ! 2 ? 1 2 ! 1 ? 1 3 ? 1 2 ! 3 ? 1 3 ? 2 3 ! 2 ? 1 3 ? 1 2 ! 3 ? 1 3 ? 1 2 ! 2 ? 1 3 ? 2 3 ! 1 ? 1 3 ? 1 2 ! 1 ? 1 4 ? 2 3 ? 1 3 ! 4 ? 1 4 ? 3 4 ! 3 ? 1 4 ? 2 3 ? 1 2 ! 4 ? 1 4 ? 2 3 ! 3 ? 1 4 ? 3 4 ? 2 4 ! 2 ? 1 4 ? 2 3 ! 2 ? 1 4 ? 2 3 ? 1 3 ! 4 ? 1 4 ? 3 4 ! 3 ? 1 4 ? 2 3 ? 1 2 ! 4 ? 1 4 ? 2 ...
result:
ok Correct (10000 test cases)
Test #29:
score: 0
Accepted
time: 54ms
memory: 3596kb
input:
10000 8 2 3 3 7 8 2 3 3 8 8 2 3 2 5 8 2 3 2 5 8 2 3 3 7 8 2 3 3 8 8 2 3 3 7 8 2 3 3 8 8 2 3 2 5 8 2 3 2 5 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 3 7 8 2 3 3 8 8 2 3 3 7 8 2 3 3 8 8 2 3 2 5 8 2 3 2 5 8 2 3 3 7 8 2 3 3 8 8 2 3 3 7 8 2 3 3 8 8 2 3 2 5 8 2 3 2 5 8 2 3 3 7 8 2 ...
output:
? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? ...
result:
ok Correct (10000 test cases)
Test #30:
score: 0
Accepted
time: 42ms
memory: 3660kb
input:
10000 8 2 3 3 7 8 2 3 3 8 8 2 3 6 7 8 2 3 6 8 8 2 3 2 5 8 2 3 2 5 8 2 3 3 7 8 2 3 3 8 8 2 3 6 7 8 2 3 6 8 8 2 3 2 5 8 2 3 2 5 8 2 3 5 7 8 2 3 5 8 8 2 3 5 7 8 2 3 5 8 8 2 3 2 5 8 2 3 2 5 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 3 2 6 8 2 4 4 7 8 2 4 4 8 8 2 4 4 7 8 2 4 4 8 8 2 4 2 5 8 2 ...
output:
? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 2 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 2 6 ? ...
result:
ok Correct (10000 test cases)
Test #31:
score: 0
Accepted
time: 80ms
memory: 3904kb
input:
10000 8 2 4 2 5 8 2 4 2 5 8 2 4 2 6 8 2 4 2 6 8 2 4 2 6 8 2 4 2 6 8 2 4 2 6 8 2 4 2 6 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 2 1 3 8 2 ...
output:
? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 8 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 8 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 8 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 8 ? 1 4 ? 1 2 ? ...
result:
ok Correct (10000 test cases)
Test #32:
score: 0
Accepted
time: 75ms
memory: 3656kb
input:
10000 8 1 2 2 7 8 1 2 2 8 8 1 2 1 5 8 1 2 1 5 8 1 2 2 7 8 1 2 2 8 8 1 2 2 7 8 1 2 2 8 8 1 2 1 5 8 1 2 1 5 8 1 2 1 6 8 1 2 1 6 8 1 2 1 6 8 1 2 1 6 8 1 2 1 6 8 1 2 1 6 8 1 2 2 7 8 1 2 2 8 8 1 2 2 7 8 1 2 2 8 8 1 2 1 5 8 1 2 1 5 8 1 2 2 7 8 1 2 2 8 8 1 2 2 7 8 1 2 2 8 8 1 2 1 5 8 1 2 1 5 8 1 2 2 7 8 1 ...
output:
? 1 8 ? 1 4 ? 1 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 1 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 1 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 1 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 1 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 1 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 1 6 ? 7 8 ! 8 ? 1 8 ? 1 4 ? 1 6 ? 7 8 ! 7 ? 1 8 ? 1 4 ? 1 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 1 6 ? 5 6 ! 6 ? 1 8 ? 1 4 ? 1 6 ? ...
result:
ok Correct (10000 test cases)
Test #33:
score: 0
Accepted
time: 60ms
memory: 3544kb
input:
10000 9 3 5 2 8 7 9 3 5 2 9 9 9 3 5 2 7 8 9 3 5 2 7 7 9 3 5 2 9 8 9 3 5 2 8 8 9 3 5 2 8 7 9 3 5 2 9 9 9 3 5 2 7 8 9 3 5 2 7 7 9 3 5 2 9 8 9 3 5 2 8 8 9 3 6 2 8 7 9 3 6 2 9 9 9 3 6 2 7 8 9 3 6 2 7 7 9 3 6 2 9 8 9 3 6 2 8 8 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 5 2 8 7 9 3 5 ...
output:
? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 ...
result:
ok Correct (10000 test cases)
Test #34:
score: 0
Accepted
time: 86ms
memory: 3596kb
input:
10000 9 3 5 2 9 8 9 3 5 2 8 8 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 9 3 3 4 6 ...
output:
? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 5 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 5 ? 1 9 ? ...
result:
ok Correct (10000 test cases)
Test #35:
score: 0
Accepted
time: 57ms
memory: 3900kb
input:
10000 9 3 6 2 7 8 9 3 6 2 7 7 9 3 6 2 9 8 9 3 6 2 8 8 9 3 6 2 8 7 9 3 6 2 9 9 9 3 6 2 7 8 9 3 6 2 7 7 9 3 6 2 9 8 9 3 6 2 8 8 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 3 4 5 9 3 5 2 8 7 9 3 5 2 9 9 9 3 5 2 7 8 9 3 5 2 7 7 9 3 5 2 9 8 9 3 5 2 8 8 9 3 6 2 8 7 9 3 6 2 9 9 9 3 6 2 7 8 9 3 6 ...
output:
? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 3 ? 7 9 ? 8 ...
result:
ok Correct (10000 test cases)
Test #36:
score: 0
Accepted
time: 92ms
memory: 3652kb
input:
10000 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 2 1 3 9 2 ...
output:
? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? 3 4 ! 4 ? 1 9 ? 1 4 ? 1 2 ? ...
result:
ok Correct (10000 test cases)
Test #37:
score: 0
Accepted
time: 95ms
memory: 3632kb
input:
10000 9 4 3 3 9 8 9 4 3 3 8 8 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 ...
output:
? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 5 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 5 ? 1 9 ? ...
result:
ok Correct (10000 test cases)
Test #38:
score: 0
Accepted
time: 54ms
memory: 3656kb
input:
10000 9 4 3 3 7 8 9 4 3 3 7 7 9 4 3 3 9 8 9 4 3 3 8 8 9 4 3 3 8 7 9 4 3 3 9 9 9 4 3 3 7 8 9 4 3 3 7 7 9 4 3 3 9 8 9 4 3 3 8 8 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 3 3 8 7 9 4 3 3 9 9 9 4 3 3 7 8 9 4 3 3 7 7 9 4 3 3 9 8 9 4 3 3 8 8 9 4 3 3 8 7 9 4 3 3 9 9 9 4 3 3 7 8 9 4 3 ...
output:
? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 ...
result:
ok Correct (10000 test cases)
Test #39:
score: 0
Accepted
time: 85ms
memory: 3908kb
input:
10000 9 8 8 8 9 9 9 9 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 8 8 8 9 9 9 9 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 6 3 3 8 7 9 6 3 3 9 9 9 6 3 3 7 8 9 6 3 3 7 7 9 6 3 3 9 8 9 6 3 3 8 8 9 9 9 8 7 9 8 8 9 7 9 9 9 8 7 9 8 8 9 7 9 7 7 7 9 7 7 7 9 5 3 3 8 7 9 5 3 3 9 9 9 5 3 3 7 8 9 5 3 3 7 7 9 5 3 ...
output:
? 1 9 ? 6 9 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 ...
result:
ok Correct (10000 test cases)
Test #40:
score: 0
Accepted
time: 69ms
memory: 3696kb
input:
10000 9 2 3 5 9 8 9 2 3 5 8 8 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 9 2 3 2 6 ...
output:
? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 6 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 9 ? 1 4 ? 2 6 ? 5 6 ! 5 ? 1 9 ? ...
result:
ok Correct (10000 test cases)
Test #41:
score: 0
Accepted
time: 67ms
memory: 3544kb
input:
10000 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 6 3 3 8 7 9 6 3 3 9 9 9 6 3 3 7 8 9 6 3 3 7 7 9 6 3 3 9 8 9 6 3 3 8 8 9 9 9 8 7 9 8 8 9 7 9 9 9 8 7 9 8 8 9 7 9 7 7 7 9 7 7 7 9 8 8 8 9 9 9 9 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 8 8 8 9 9 9 9 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 6 3 3 8 7 9 ...
output:
? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 3 6 ? 1 6 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 6 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 3 6 ? 1 6 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 6 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 6 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 6 ...
result:
ok Correct (10000 test cases)
Test #42:
score: 0
Accepted
time: 66ms
memory: 3592kb
input:
10000 9 8 8 8 9 9 9 9 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 8 8 8 9 9 9 9 9 7 7 6 8 9 7 7 6 9 9 9 9 8 6 9 8 8 9 6 9 6 3 3 8 7 9 6 3 3 9 9 9 6 3 3 7 8 9 6 3 3 7 7 9 6 3 3 9 8 9 6 3 3 8 8 9 9 9 8 7 9 8 8 9 7 9 9 9 8 7 9 8 8 9 7 9 7 7 7 9 7 7 7 9 5 3 3 8 7 9 5 3 3 9 9 9 5 3 3 7 8 9 5 3 3 7 7 9 5 3 ...
output:
? 1 9 ? 6 9 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 9 ? 1 9 ? 6 9 ? 6 7 ? 8 9 ! 8 ? 1 9 ? 6 9 ? 8 9 ? 6 7 ! 7 ? 1 9 ? 6 9 ? 8 ...
result:
ok Correct (10000 test cases)
Test #43:
score: 0
Accepted
time: 59ms
memory: 3600kb
input:
10000 9 5 3 3 9 8 9 5 3 3 8 8 9 5 5 5 9 5 5 5 9 5 5 5 9 5 5 5 9 5 5 5 9 5 5 5 9 9 8 9 4 9 8 9 8 4 9 9 7 9 4 9 8 7 8 4 9 7 9 7 4 9 7 8 7 4 9 9 8 9 4 9 8 9 8 4 9 9 7 9 4 9 8 7 8 4 9 7 9 7 4 9 7 8 7 4 9 9 6 9 4 9 8 6 8 4 9 9 6 9 4 9 8 6 8 4 9 7 6 7 4 9 7 6 7 4 9 6 6 6 9 6 6 6 9 6 6 6 9 6 6 6 9 6 6 6 9 ...
output:
? 1 9 ? 3 6 ? 1 5 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 5 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 5 6 ! 6 ? 1 9 ? 6 9 ? 4 9 ? 4 5 ! 5 ? 1 9 ? 6 9 ? 4 8 ? 4 5 ! 5 ? 1 9 ? 6 9 ? 4 9 ? 4 5 ! 5 ? 1 9 ? 6 9 ? 4 ...
result:
ok Correct (10000 test cases)
Test #44:
score: 0
Accepted
time: 80ms
memory: 3600kb
input:
10000 9 2 3 3 7 8 9 2 3 3 7 7 9 2 3 3 9 8 9 2 3 3 8 8 9 2 3 6 8 7 9 2 3 6 9 9 9 2 3 6 7 8 9 2 3 6 7 7 9 2 3 6 9 8 9 2 3 6 8 8 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 2 5 9 2 3 3 8 7 9 2 3 3 9 9 9 2 3 3 7 8 9 2 3 3 7 7 9 2 3 3 9 8 9 2 3 3 8 8 9 2 3 3 8 7 9 2 3 3 9 9 9 2 3 3 7 8 9 2 3 ...
output:
? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 1 4 ? 2 6 ? 7 9 ? 8 ...
result:
ok Correct (10000 test cases)
Test #45:
score: 0
Accepted
time: 55ms
memory: 3600kb
input:
10000 9 9 8 9 5 9 8 9 8 5 9 9 7 9 5 9 8 7 8 5 9 7 9 7 5 9 7 8 7 5 9 9 8 9 5 9 8 9 8 5 9 9 7 9 5 9 8 7 8 5 9 7 9 7 5 9 7 8 7 5 9 9 6 9 5 9 8 6 8 5 9 9 6 9 5 9 8 6 8 5 9 7 6 7 5 9 7 6 7 5 9 6 6 5 3 9 6 6 5 3 9 6 6 5 3 9 6 6 5 3 9 6 6 5 3 9 6 6 5 3 9 9 8 9 5 9 8 9 8 5 9 9 7 9 5 9 8 7 8 5 9 7 9 7 5 9 7 ...
output:
? 1 9 ? 6 9 ? 4 9 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 8 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 9 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 8 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 7 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 7 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 9 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 8 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 9 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 8 ? 4 5 ! 4 ? 1 9 ? 6 9 ? 4 7 ? ...
result:
ok Correct (10000 test cases)
Test #46:
score: 0
Accepted
time: 65ms
memory: 3632kb
input:
10000 9 4 5 3 9 8 9 4 5 3 8 8 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 9 4 4 3 6 ...
output:
? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 6 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 5 ? 1 9 ? 3 6 ? 3 4 ? 5 6 ! 5 ? 1 9 ? ...
result:
ok Correct (10000 test cases)
Test #47:
score: 0
Accepted
time: 85ms
memory: 3632kb
input:
10000 9 4 3 2 7 8 9 4 3 2 7 7 9 4 3 2 9 8 9 4 3 2 8 8 9 4 6 2 8 7 9 4 6 2 9 9 9 4 6 2 7 8 9 4 6 2 7 7 9 4 6 2 9 8 9 4 6 2 8 8 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 4 3 5 9 4 3 2 8 7 9 4 3 2 9 9 9 4 3 2 7 8 9 4 3 2 7 7 9 4 3 2 9 8 9 4 3 2 8 8 9 4 3 2 8 7 9 4 3 2 9 9 9 4 3 2 7 8 9 4 3 ...
output:
? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 9 ! 7 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 7 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 9 ! 8 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 9 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 7 8 ! 8 ? 1 9 ? 3 6 ? 1 4 ? 7 9 ? 8 ...
result:
ok Correct (10000 test cases)
Extra Test:
score: 0
Extra Test Passed