QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#542192#8939. Permutationucup-team180#AC ✓131ms3908kbC++2034.2kb2024-08-31 23:20:312024-08-31 23:20:31

Judging History

This is the latest submission verdict.

  • [2024-08-31 23:20:31]
  • Judged
  • Verdict: AC
  • Time: 131ms
  • Memory: 3908kb
  • [2024-08-31 23:20:31]
  • Submitted

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);
    }
}

詳細信息

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