QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#236753 | #7685. Barkley II | ucup-team180# | AC ✓ | 787ms | 116552kb | C++17 | 35.9kb | 2023-11-04 10:31:42 | 2023-11-04 10:31:42 |
Judging History
你现在查看的是测评时间为 2023-11-04 10:31:42 的历史记录
- [2023-11-08 13:07:29]
- hack成功,自动添加数据
- (//qoj.ac/hack/437)
- [2023-11-04 10:31:42]
- 提交
answer
#pragma region Macros
#ifdef noimi
#include "my_template.hpp"
#else
#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(ll 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;
T mid = sqrtl(ok * ng);
(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
namespace segtree_impl {
namespace internal {
// @param n `0 <= n`
// @return minimum non-negative `x` s.t. `n <= 2**x`
int ceil_pow2(int n) {
int x = 0;
while((1U << x) < (unsigned int)(n)) x++;
return x;
}
// @param n `1 <= n`
// @return minimum non-negative `x` s.t. `(n & (1 << x)) != 0`
constexpr int bsf_constexpr(unsigned int n) {
int x = 0;
while(!(n & (1 << x))) x++;
return x;
}
// @param n `1 <= n`
// @return minimum non-negative `x` s.t. `(n & (1 << x)) != 0`
int bsf(unsigned int n) {
#ifdef _MSC_VER
unsigned long index;
_BitScanForward(&index, n);
return index;
#else
return __builtin_ctz(n);
#endif
}
} // namespace internal
} // namespace segtree_impl
namespace segtree_impl {
template <class S, S (*op)(S, S), S (*e)()> struct segtree {
public:
segtree() : segtree(0) {}
explicit segtree(int n) : segtree(std::vector<S>(n, e())) {}
explicit segtree(const std::vector<S> &v) : _n(int(v.size())) {
log = internal::ceil_pow2(_n);
size = 1 << log;
d = std::vector<S>(2 * size, e());
for(int i = 0; i < _n; i++) d[size + i] = v[i];
for(int i = size - 1; i >= 1; i--) { update(i); }
}
void set(int p, S x) {
assert(0 <= p && p < _n);
p += size;
d[p] = x;
for(int i = 1; i <= log; i++) update(p >> i);
}
S get(int p) const {
assert(0 <= p && p < _n);
return d[p + size];
}
S operator[](int k) const { return get(k); }
S prod(int l, int r) const {
#ifdef ONLINE_JUDGE
if(l < 0) l = 0;
if(r > _n) r = _n;
if(l > r) return e();
#endif
assert(0 <= l && l <= r && r <= _n);
S sml = e(), smr = e();
l += size;
r += size;
while(l < r) {
if(l & 1) sml = op(sml, d[l++]);
if(r & 1) smr = op(d[--r], smr);
l >>= 1;
r >>= 1;
}
return op(sml, smr);
}
S all_prod() const { return d[1]; }
template <bool (*f)(S)> int max_right(int l) const {
return max_right(l, [](S x) { return f(x); });
}
template <class F> int max_right(int l, F f) const {
#ifdef ONLINE_JUDGE
if(l < 0) l = 0;
if(l > _n) l = _n;
#endif
assert(0 <= l && l <= _n);
assert(f(e()));
if(l == _n) return _n;
l += size;
S sm = e();
do {
while(l % 2 == 0) l >>= 1;
if(!f(op(sm, d[l]))) {
while(l < size) {
l = (2 * l);
if(f(op(sm, d[l]))) {
sm = op(sm, d[l]);
l++;
}
}
return l - size;
}
sm = op(sm, d[l]);
l++;
} while((l & -l) != l);
return _n;
}
template <bool (*f)(S)> int min_left(int r) const {
return min_left(r, [](S x) { return f(x); });
}
template <class F> int min_left(int r, F f) const {
#ifdef ONLINE_JUDGE
if(r < 0) r = 0;
if(r > _n) r = _n;
#endif
assert(0 <= r && r <= _n);
assert(f(e()));
if(r == 0) return 0;
r += size;
S sm = e();
do {
r--;
while(r > 1 && (r % 2)) r >>= 1;
if(!f(op(d[r], sm))) {
while(r < size) {
r = (2 * r + 1);
if(f(op(d[r], sm))) {
sm = op(d[r], sm);
r--;
}
}
return r + 1 - size;
}
sm = op(d[r], sm);
} while((r & -r) != r);
return 0;
}
friend std::ostream &operator<<(std::ostream &os, segtree &ls) {
os << "{";
for(int i = 0; i < ls._n; i++) os << ls.get(i) << (i == ls._n - 1 ? "" : ", ");
return os << "}";
}
private:
int _n, size, log;
std::vector<S> d;
void update(int k) { d[k] = op(d[2 * k], d[2 * k + 1]); }
};
template <class T> constexpr T inf = std::numeric_limits<T>::max() / 2;
template <class T, class U> constexpr std::pair<T, U> inf<std::pair<T, U>> = {inf<T>, inf<U>};
template <typename T> T min_func(T x, T y) { return min(x, y); }
template <typename T> T max_func(T x, T y) { return max(x, y); }
template <typename T> T plus_func(T x, T y) { return x + y; }
template <typename T, int ID> T set_func(T x, T y) { return (y == ID ? x : y); }
template <typename T> T min_e() { return inf<T>; }
template <typename T> T max_e() { return -inf<T>; }
template <typename T> T plus_e() { return T(); }
template <typename T> using RST = segtree<T, plus_func<T>, plus_e<T>>;
template <typename T> using RmT = segtree<T, min_func<T>, min_e<T>>;
template <typename T> using RMT = segtree<T, max_func<T>, max_e<T>>;
template <typename T> struct mMinfo {
T mi, ma;
};
template <typename T> mMinfo<T> mM_func(mMinfo<T> x, mMinfo<T> y) { return mMinfo{min(x.mi, y.mi), max(x.ma, y.ma)}; };
template <typename T> mMinfo<T> mM_e() { return {inf<T>, -inf<T>}; }
template <typename T> using RmMT = segtree<mMinfo<T>, mM_func<T>, mM_e<T>>;
} // namespace segtree_impl
using segtree_impl::RmT;
using segtree_impl::RMT;
using segtree_impl::RST;
using segtree_impl::segtree;
int main() {
TEST {
INT(n, m);
VEC(int, a, n);
--a;
map<int, vi> v;
rep(i, n) v[a[i]].eb(i);
vvc<pii> q(n);
fore(i, w, v) {
w.insert(begin(w), -1);
w.eb(n);
rep(j, si(w) - 1) {
if(w[j] + 1 < w[j + 1]) q[w[j] + 1].eb(w[j + 1], i);
}
}
rep(i, m + 1) {
if(!v.count(i)) {
q[0].eb(n, i);
break;
}
}
int ma = 0;
vi nxt(n);
{
map<int, int> pre;
per(i, n) {
if(pre.count(a[i]))
nxt[i] = pre[a[i]];
else
nxt[i] = inf<int>;
pre[a[i]] = i;
}
}
RST<int> seg(n + 1);
rep(i, n) {
if(nxt[i] != inf<int>) seg.set(nxt[i], seg[nxt[i]] + 1);
}
rep(i, n) {
fore(r, mex, q[i]) {
dump(i, r, seg.prod(i, r));
chmax(ma, r - i - seg.prod(i, r) - mex);
}
if(nxt[i] != inf<int>) seg.set(nxt[i], seg[nxt[i]] - 1);
}
OUT(ma - 1);
}
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3644kb
input:
2 5 4 1 2 2 3 4 5 10000 5 2 3 4 1
output:
2 3
result:
ok 2 number(s): "2 3"
Test #2:
score: 0
Accepted
time: 130ms
memory: 3788kb
input:
50000 10 19 12 6 1 12 11 15 4 1 13 18 10 8 8 7 6 7 6 2 2 3 4 8 10 6 3 2 6 6 5 2 3 4 5 6 10 11 6 3 7 9 2 1 2 10 10 4 10 6 6 1 2 6 1 1 3 4 2 1 10 9 8 5 3 9 1 7 5 5 1 1 10 5 1 4 3 2 5 4 5 3 5 2 10 14 3 8 12 10 4 2 3 13 7 3 10 14 5 5 12 2 8 1 13 9 8 5 10 7 5 5 6 6 1 5 3 7 3 4 10 7 5 1 4 6 1 6 4 3 7 5 10...
output:
6 5 4 4 2 4 3 7 4 4 4 5 2 3 6 6 7 5 7 6 5 5 6 2 6 8 7 2 5 5 6 2 2 3 4 5 3 3 7 3 2 5 6 1 3 5 3 3 3 8 6 6 5 7 4 4 5 4 6 6 6 3 7 3 6 3 3 7 7 6 6 7 4 3 3 4 4 6 3 4 6 6 4 5 5 9 4 5 7 5 3 5 2 2 5 6 6 8 4 3 4 5 5 5 7 7 3 2 6 5 3 5 4 4 5 6 6 5 6 7 7 4 5 7 4 7 3 7 6 6 6 5 4 2 5 4 2 3 6 5 2 6 5 5 4 3 5 6 6 6 ...
result:
ok 50000 numbers
Test #3:
score: 0
Accepted
time: 117ms
memory: 3860kb
input:
100000 5 4 4 3 1 3 1 5 4 2 2 1 3 4 5 9 7 8 7 1 3 5 3 3 2 2 3 1 5 7 1 4 2 4 7 5 4 4 4 4 2 3 5 3 2 1 2 2 2 5 5 2 1 2 5 4 5 9 1 8 4 4 7 5 6 2 6 4 6 2 5 5 1 2 4 4 4 5 3 2 1 1 1 3 5 5 5 4 5 2 5 5 4 3 3 3 2 1 5 3 3 1 3 2 3 5 7 1 5 2 2 7 5 6 2 2 6 5 6 5 10 6 3 3 1 7 5 8 1 6 8 4 3 5 4 1 2 1 3 3 5 7 2 2 4 3 ...
output:
1 1 2 1 2 2 0 2 2 2 1 0 2 1 1 2 2 2 3 0 3 1 2 2 3 3 1 3 0 0 3 2 2 0 2 2 1 0 2 2 3 3 3 1 3 2 2 3 2 3 2 1 2 3 1 3 3 1 2 3 1 1 2 2 2 2 0 1 0 1 0 2 1 3 0 2 2 3 2 2 1 3 1 3 1 1 1 3 1 1 4 0 1 3 2 2 2 0 3 2 4 3 3 2 1 0 4 4 3 2 1 2 1 2 3 2 3 4 4 3 0 0 1 4 1 3 3 2 3 1 3 4 3 1 2 2 3 2 3 2 3 3 1 3 1 1 4 1 1 3 ...
result:
ok 100000 numbers
Test #4:
score: 0
Accepted
time: 135ms
memory: 3600kb
input:
25000 20 28 4 28 8 7 8 23 13 27 1 3 24 19 21 7 21 6 10 3 1 8 20 18 6 13 17 2 4 11 12 5 10 8 1 3 5 18 10 2 8 15 4 17 20 17 5 9 5 15 7 11 16 2 16 17 15 11 3 12 13 12 11 17 15 14 20 28 12 17 26 1 21 18 9 12 22 3 7 24 5 8 20 3 25 28 17 20 20 13 9 10 4 9 10 13 4 3 3 9 12 8 4 12 2 2 6 10 13 5 20 22 17 13 ...
output:
12 9 11 14 9 12 9 15 6 11 8 13 14 13 7 11 8 13 11 11 14 14 7 15 10 10 10 12 9 13 12 10 10 14 14 11 9 8 9 10 10 5 11 14 13 14 13 8 8 12 10 10 17 12 7 14 9 11 14 13 8 12 15 13 14 11 9 8 11 17 9 12 11 13 13 10 14 10 10 16 12 13 12 11 14 12 9 12 5 9 15 16 13 15 7 14 12 6 12 13 7 8 12 10 13 15 9 16 7 16 ...
result:
ok 25000 numbers
Test #5:
score: 0
Accepted
time: 196ms
memory: 3584kb
input:
5000 100 100 71 48 44 27 73 73 90 42 69 81 79 99 97 3 45 78 38 92 89 27 97 7 4 91 42 59 7 45 88 100 15 66 64 6 26 54 38 38 72 81 15 94 35 63 33 85 100 16 41 5 71 20 92 36 39 59 19 59 11 22 11 26 94 29 73 98 16 16 47 25 35 50 49 6 67 85 69 90 6 87 72 24 37 62 55 54 25 38 95 14 15 26 89 26 25 46 14 24...
output:
59 78 69 48 78 53 64 73 53 66 59 57 62 42 73 69 46 68 66 47 59 64 71 57 73 43 52 66 67 61 66 66 65 58 80 65 65 69 75 76 69 39 69 61 53 72 44 62 63 71 76 56 69 79 49 73 62 71 83 59 70 53 69 73 47 68 74 59 66 74 75 61 53 76 48 62 79 71 47 72 40 80 62 42 63 70 72 70 70 59 68 56 74 54 61 78 68 75 70 39 ...
result:
ok 5000 numbers
Test #6:
score: 0
Accepted
time: 551ms
memory: 51340kb
input:
2 250000 144237 103523 38477 80037 110169 8464 110583 60349 74339 29012 8989 96955 23403 38383 12186 107503 109176 1709 31839 109579 62912 130470 26082 102718 25272 17893 55607 48053 34513 23154 136492 8313 136454 57920 60639 68601 50656 16871 101625 88777 35367 62644 80269 24346 33961 74832 62520 8...
output:
118705 195099
result:
ok 2 number(s): "118705 195099"
Test #7:
score: 0
Accepted
time: 635ms
memory: 88152kb
input:
1 500000 500000 166333 42890 491246 340568 331305 268296 201428 53022 200493 362616 82079 492836 402998 214609 161141 471977 378791 107806 182516 265636 468917 104158 490409 221339 116329 325539 49370 262861 37122 78932 236317 431273 76912 177034 393086 455348 481306 290838 435357 444359 465017 1894...
output:
315937
result:
ok 1 number(s): "315937"
Test #8:
score: 0
Accepted
time: 125ms
memory: 3852kb
input:
50000 10 359848 3 7 9 4 5 2 8 10 1 6 10 418109 5 3 9 4 8 10 6 2 1 7 10 218272 3 4 6 5 2 1 9 10 8 7 10 35311 10 8 7 3 9 2 1 6 5 4 10 82600 4 10 6 9 7 5 2 1 3 8 10 265069 10 5 3 2 9 4 1 8 7 6 10 105624 7 2 3 1 9 10 5 8 4 6 10 440218 10 5 3 6 9 4 1 8 7 2 10 444968 1 2 4 7 5 10 3 9 8 6 10 199453 7 10 1 ...
output:
7 7 6 5 6 5 6 7 8 6 7 4 7 5 7 6 8 8 6 6 7 8 5 7 6 6 5 6 7 4 6 6 6 5 7 7 8 6 7 8 8 7 5 4 6 5 5 8 8 7 7 7 6 5 7 6 7 7 5 7 7 6 8 8 5 7 5 7 7 5 7 6 8 6 6 5 8 7 7 8 7 7 5 5 8 8 7 6 8 5 5 7 8 6 5 8 4 7 5 7 6 7 5 7 7 6 8 7 7 7 8 5 6 7 7 6 8 7 7 7 6 7 6 6 5 6 7 7 7 7 6 5 6 5 8 8 6 7 7 5 7 8 5 6 4 8 7 6 7 8 ...
result:
ok 50000 numbers
Test #9:
score: 0
Accepted
time: 126ms
memory: 3852kb
input:
100000 5 5277 5 4 1 3 2 5 190469 3 1 4 5 2 5 238117 3 1 2 4 5 5 173164 4 5 1 3 2 5 21126 2 1 4 5 3 5 257869 2 4 3 1 5 5 58430 5 3 1 2 4 5 280066 4 2 3 5 1 5 406541 4 2 5 3 1 5 462388 1 2 4 3 5 5 140796 3 4 1 2 5 5 290933 4 1 5 2 3 5 69105 1 3 5 4 2 5 379211 2 5 1 4 3 5 337951 4 1 3 2 5 5 266310 4 2 ...
output:
2 2 2 2 2 2 1 3 3 3 1 2 3 2 2 2 1 3 1 3 1 2 2 3 3 1 2 3 2 3 3 3 3 2 2 3 3 2 2 3 2 3 2 3 3 3 1 3 3 2 2 1 3 2 3 2 2 2 3 3 2 2 2 3 3 3 2 2 2 2 3 2 3 2 3 2 2 3 1 2 2 3 2 2 2 2 3 2 2 2 2 3 2 3 1 2 1 3 2 3 2 3 2 3 2 2 3 2 3 2 3 2 3 2 2 2 2 3 2 2 2 3 2 3 1 2 3 3 2 2 3 2 3 3 3 3 2 3 3 3 3 1 2 2 2 2 2 1 2 3 ...
result:
ok 100000 numbers
Test #10:
score: 0
Accepted
time: 157ms
memory: 3564kb
input:
25000 20 82509 9 14 10 3 17 20 1 11 4 6 19 18 13 5 8 15 12 2 16 7 20 182141 2 1 18 12 3 19 5 10 6 9 17 13 8 16 7 14 20 15 11 4 20 442101 3 9 12 4 15 20 10 5 1 8 13 6 17 2 14 19 7 11 18 16 20 394185 18 10 19 3 5 1 14 13 9 2 12 4 16 15 8 20 17 7 6 11 20 166980 20 17 16 10 5 14 6 11 3 2 9 12 4 1 13 15 ...
output:
15 17 16 13 12 16 13 16 17 17 16 17 17 17 13 18 14 16 18 16 15 16 16 17 17 12 15 15 17 17 14 16 14 17 17 16 18 16 16 16 15 16 16 16 18 12 17 15 16 15 16 14 18 15 15 15 14 18 13 18 15 17 17 14 16 15 15 15 12 13 15 16 14 14 18 15 15 13 14 16 18 16 13 17 16 16 15 18 12 13 17 13 16 14 17 15 18 15 12 14 ...
result:
ok 25000 numbers
Test #11:
score: 0
Accepted
time: 219ms
memory: 3592kb
input:
5000 100 306161 12 73 87 36 97 31 46 98 75 48 63 53 3 80 93 22 66 92 61 84 18 54 40 64 45 95 9 13 26 59 23 30 70 51 72 7 2 78 5 10 6 82 8 56 27 24 76 16 25 41 90 81 58 94 37 17 4 55 32 89 43 42 100 62 39 49 67 14 86 99 20 38 71 60 34 50 11 74 88 15 52 44 83 77 69 28 65 79 68 29 1 91 35 57 33 21 47 8...
output:
89 95 86 86 90 90 84 90 88 91 93 90 93 92 95 90 95 97 88 92 88 93 88 91 92 90 87 95 89 90 92 89 93 96 95 95 96 93 91 95 93 88 89 91 90 88 94 93 82 90 92 94 88 95 88 85 93 94 96 94 89 96 90 91 91 88 90 90 83 90 87 95 94 92 85 92 93 91 85 92 88 90 96 97 90 83 88 92 89 97 94 97 94 93 91 89 88 93 84 92 ...
result:
ok 5000 numbers
Test #12:
score: 0
Accepted
time: 699ms
memory: 60328kb
input:
2 250000 428579 248668 155599 194637 33958 195350 111388 73108 122013 20865 138324 35552 86373 81856 197773 29494 225040 222921 2274 216341 152306 218039 235001 169433 26562 11648 164657 233867 233011 158427 165182 113806 107090 146738 221989 186397 131670 111042 204004 65140 159348 99198 190164 856...
output:
249454 249551
result:
ok 2 number(s): "249454 249551"
Test #13:
score: 0
Accepted
time: 787ms
memory: 116552kb
input:
1 500000 500000 200323 10145 176452 387759 57674 376309 106257 281569 154190 13537 419396 294390 286088 241280 367901 91976 300287 310956 58027 491859 430847 227221 181181 26524 476739 25343 83009 388661 459213 378505 113707 115770 155346 202887 405077 361306 201954 16016 485924 464238 343243 236494...
output:
499422
result:
ok 1 number(s): "499422"
Test #14:
score: 0
Accepted
time: 557ms
memory: 86304kb
input:
1 500000 500000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98...
output:
311338
result:
ok 1 number(s): "311338"
Test #15:
score: 0
Accepted
time: 469ms
memory: 86236kb
input:
1 500000 500000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98...
output:
307443
result:
ok 1 number(s): "307443"
Test #16:
score: 0
Accepted
time: 480ms
memory: 84684kb
input:
1 500000 500000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98...
output:
305836
result:
ok 1 number(s): "305836"
Test #17:
score: 0
Accepted
time: 468ms
memory: 45260kb
input:
2 250000 320206 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98...
output:
156562 156572
result:
ok 2 number(s): "156562 156572"
Test #18:
score: 0
Accepted
time: 572ms
memory: 87096kb
input:
1 500000 500000 67747 38472 76237 7972 62365 36105 34362 23274 61467 21635 95771 34387 23674 3857 37057 18336 84767 50439 2357 53189 8869 83750 55606 94094 90021 52397 5809 80476 56565 34554 47591 51217 51276 28517 64932 63703 34119 43535 72610 98274 62990 30880 6591 74894 48858 55763 93145 58585 50...
output:
311331
result:
ok 1 number(s): "311331"
Test #19:
score: 0
Accepted
time: 568ms
memory: 85064kb
input:
1 500000 500000 81659 59755 13320 52800 102048 24484 83539 89834 46433 123601 11208 22262 124587 100771 15337 62666 11374 97503 29711 6694 25755 56670 110069 34363 15409 36378 114997 19584 24543 12997 88597 124416 66687 65754 44654 119483 87649 52779 49543 50120 100035 60367 58291 40114 19754 119795...
output:
307336
result:
ok 1 number(s): "307336"
Test #20:
score: 0
Accepted
time: 503ms
memory: 45280kb
input:
2 250000 396391 2040 20276 7530 10825 39119 13529 4441 25003 7137 11769 461 23867 24728 28314 3489 30869 38066 17511 27762 13011 37908 2622 24084 10557 11075 27890 27994 14094 25043 15674 39444 31750 7595 13696 30452 32898 15738 6776 30015 2724 38901 4976 20624 30857 21208 25797 32806 2138 20757 838...
output:
156459 156522
result:
ok 2 number(s): "156459 156522"
Test #21:
score: 0
Accepted
time: 486ms
memory: 44072kb
input:
2 250000 376720 53282 11405 12510 56150 9005 557 56844 33582 26360 67667 3631 11897 56385 33187 14002 35153 41287 14848 21195 25750 63087 11686 68033 47000 47327 59250 71450 37210 47084 45107 18505 41348 64394 64307 54296 54345 2136 33719 2519 29319 19417 18478 46052 55886 18749 72653 24036 8553 674...
output:
149846 149789
result:
ok 2 number(s): "149846 149789"
Test #22:
score: 0
Accepted
time: 563ms
memory: 81924kb
input:
1 500000 500000 141664 109080 176561 114617 35758 36903 2809 99227 27868 43611 89831 8352 120764 22483 70356 167436 16831 114657 119265 15825 197069 55799 42540 156458 179906 80880 182798 110077 184446 114907 88241 160397 194428 195133 169238 161618 116316 108271 45761 103675 150012 52223 182050 886...
output:
285094
result:
ok 1 number(s): "285094"
Test #23:
score: 0
Accepted
time: 561ms
memory: 86464kb
input:
1 500000 500000 107386 4605 86424 86357 97484 108126 29646 101230 69147 83308 11412 34228 79593 45762 98923 115275 68539 111200 113989 87852 63449 54662 128372 5641 18970 101970 93394 63363 71590 94540 99644 81657 13537 123771 43403 13330 122736 7585 252 104747 84286 98562 36441 19915 52002 64695 12...
output:
306519
result:
ok 1 number(s): "306519"
Test #24:
score: 0
Accepted
time: 356ms
memory: 96748kb
input:
1 500000 500000 125000 124999 124998 124997 124996 124995 124994 124993 124992 124991 124990 124989 124988 124987 124986 124985 124984 124983 124982 124981 124980 124979 124978 124977 124976 124975 124974 124973 124972 124971 124970 124969 124968 124967 124966 124965 124964 124963 124962 124961 1249...
output:
249998
result:
ok 1 number(s): "249998"
Test #25:
score: 0
Accepted
time: 362ms
memory: 50592kb
input:
2 250000 396796 1093 32642 29809 6887 37029 46867 60496 58834 1428 10427 15429 49247 9040 33015 12170 15102 22548 22433 59213 51801 36012 22924 11589 52668 36579 15129 45097 48913 5052 32168 30675 28077 52526 27163 51270 5773 33274 36742 32550 43055 54817 45840 8949 47482 6680 3686 8081 48196 50000 ...
output:
187496 124998
result:
ok 2 number(s): "187496 124998"
Test #26:
score: 0
Accepted
time: 330ms
memory: 96856kb
input:
1 499999 500000 124999 124998 124997 124996 124995 124994 124993 124992 124991 124990 124989 124988 124987 124986 124985 124984 124983 124982 124981 124980 124979 124978 124977 124976 124975 124974 124973 124972 124971 124970 124969 124968 124967 124966 124965 124964 124963 124962 124961 124960 1249...
output:
249999
result:
ok 1 number(s): "249999"
Test #27:
score: 0
Accepted
time: 171ms
memory: 3856kb
input:
500000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
result:
ok 500000 numbers
Test #28:
score: 0
Accepted
time: 120ms
memory: 3596kb
input:
250000 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 2 2 2...
output:
0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0...
result:
ok 250000 numbers
Test #29:
score: 0
Accepted
time: 129ms
memory: 3616kb
input:
250000 2 3 1 3 2 3 3 2 2 3 2 2 2 3 1 2 2 3 3 1 2 3 2 1 2 3 1 1 2 3 3 3 2 3 2 3 2 3 1 3 2 3 3 2 2 3 2 2 2 3 1 2 2 3 3 1 2 3 2 1 2 3 1 1 2 3 3 3 2 3 2 3 2 3 1 3 2 3 3 2 2 3 2 2 2 3 1 2 2 3 3 1 2 3 2 1 2 3 1 1 2 3 3 3 2 3 2 3 2 3 1 3 2 3 3 2 2 3 2 2 2 3 1 2 2 3 3 1 2 3 2 1 2 3 1 1 2 3 3 3 2 3 2 3 2 3 1...
output:
0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 0 1 0 1 0 0 0 0 -1 ...
result:
ok 250000 numbers
Test #30:
score: 0
Accepted
time: 101ms
memory: 3628kb
input:
166666 3 2 2 1 1 3 2 1 1 1 3 2 2 2 2 3 2 1 2 2 3 2 2 1 2 3 2 1 1 2 3 2 2 2 1 3 2 1 2 1 3 2 2 1 1 3 2 1 1 1 3 2 2 2 2 3 2 1 2 2 3 2 2 1 2 3 2 1 1 2 3 2 2 2 1 3 2 1 2 1 3 2 2 1 1 3 2 1 1 1 3 2 2 2 2 3 2 1 2 2 3 2 2 1 2 3 2 1 1 2 3 2 2 2 1 3 2 1 2 1 3 2 2 1 1 3 2 1 1 1 3 2 2 2 2 3 2 1 2 2 3 2 2 1 2 3 2...
output:
0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 ...
result:
ok 166666 numbers
Test #31:
score: 0
Accepted
time: 110ms
memory: 3648kb
input:
166666 3 3 1 2 3 3 3 3 1 3 3 3 2 1 3 3 3 1 1 3 3 3 3 3 2 3 3 2 3 2 3 3 1 3 2 3 3 3 2 2 3 3 2 2 2 3 3 1 2 2 3 3 3 1 2 3 3 2 1 2 3 3 1 1 2 3 3 3 3 1 3 3 2 3 1 3 3 1 3 1 3 3 3 2 1 3 3 2 2 1 3 3 1 2 1 3 3 3 1 1 3 3 2 1 1 3 3 1 1 1 3 3 3 3 3 3 3 2 3 3 3 3 1 3 3 3 3 3 2 3 3 3 2 2 3 3 3 1 2 3 3 3 3 1 3 3 3...
output:
1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 -1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 -1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 -1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 -1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 -1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0...
result:
ok 166666 numbers
Test #32:
score: 0
Accepted
time: 107ms
memory: 3660kb
input:
125000 4 4 4 2 1 2 4 4 3 2 1 2 4 4 2 2 1 2 4 4 1 2 1 2 4 4 4 1 1 2 4 4 3 1 1 2 4 4 2 1 1 2 4 4 1 1 1 2 4 4 4 4 4 1 4 4 3 4 4 1 4 4 2 4 4 1 4 4 1 4 4 1 4 4 4 3 4 1 4 4 3 3 4 1 4 4 2 3 4 1 4 4 1 3 4 1 4 4 4 2 4 1 4 4 3 2 4 1 4 4 2 2 4 1 4 4 1 2 4 1 4 4 4 1 4 1 4 4 3 1 4 1 4 4 2 1 4 1 4 4 1 1 4 1 4 4 4...
output:
1 1 0 0 0 0 0 0 0 1 1 0 1 1 2 1 1 2 1 1 0 1 0 0 1 1 2 1 1 0 1 0 2 1 1 1 1 0 0 0 1 2 1 1 2 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 -1 0 1 1 0 1 1 2 1 1 2 1 1 0 1 0 0 1 1 2 1 1 1 2 1 2 2 2 2 1 1 1 1 1 2 1 1 2 2 2 2 1 2 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 0 0 1 1 2 1 1 1 2 1 2 2 2 2 1 1...
result:
ok 125000 numbers
Test #33:
score: 0
Accepted
time: 107ms
memory: 3632kb
input:
100000 5 5 5 5 5 5 5 5 5 4 5 5 5 5 5 5 3 5 5 5 5 5 5 2 5 5 5 5 5 5 1 5 5 5 5 5 5 5 4 5 5 5 5 5 4 4 5 5 5 5 5 3 4 5 5 5 5 5 2 4 5 5 5 5 5 1 4 5 5 5 5 5 5 3 5 5 5 5 5 4 3 5 5 5 5 5 3 3 5 5 5 5 5 2 3 5 5 5 5 5 1 3 5 5 5 5 5 5 2 5 5 5 5 5 4 2 5 5 5 5 5 3 2 5 5 5 5 5 2 2 5 5 5 5 5 1 2 5 5 5 5 5 5 1 5 5 5...
output:
0 1 1 1 0 1 1 2 2 1 1 2 1 2 1 1 2 2 1 1 0 1 1 0 0 1 1 2 2 1 1 1 2 2 1 2 2 2 3 2 2 2 3 2 2 1 1 2 1 1 1 2 1 2 1 2 2 2 3 2 1 2 1 2 1 2 3 2 2 2 1 2 1 1 1 1 2 2 1 1 2 2 3 2 2 2 3 2 2 2 1 2 2 1 1 1 1 1 1 1 0 1 1 1 0 1 1 2 1 1 1 2 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 2 2 1 1 1 2 2 1 2 2 2 3 2 2 2 3 2 2 1 1 2 1 1 ...
result:
ok 100000 numbers
Test #34:
score: 0
Accepted
time: 104ms
memory: 3860kb
input:
83333 6 6 5 5 5 2 5 5 6 6 4 5 5 2 5 5 6 6 3 5 5 2 5 5 6 6 2 5 5 2 5 5 6 6 1 5 5 2 5 5 6 6 6 4 5 2 5 5 6 6 5 4 5 2 5 5 6 6 4 4 5 2 5 5 6 6 3 4 5 2 5 5 6 6 2 4 5 2 5 5 6 6 1 4 5 2 5 5 6 6 6 3 5 2 5 5 6 6 5 3 5 2 5 5 6 6 4 3 5 2 5 5 6 6 3 3 5 2 5 5 6 6 2 3 5 2 5 5 6 6 1 3 5 2 5 5 6 6 6 2 5 2 5 5 6 6 5 ...
output:
1 2 2 1 1 3 2 2 3 2 2 3 2 3 2 2 2 2 1 2 2 1 1 1 1 1 1 1 1 3 3 3 4 3 3 3 2 2 3 2 2 3 2 2 3 2 2 4 3 3 3 3 3 3 2 2 3 2 2 2 2 2 2 2 2 3 3 4 3 3 3 3 2 3 2 2 2 4 3 3 3 3 3 3 2 3 2 2 2 3 2 3 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 2 1 2 2 1 1 3 2 2 3 2 2 3 2 3 2 2 2 2 1 2 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 ...
result:
ok 83333 numbers
Test #35:
score: 0
Accepted
time: 100ms
memory: 3820kb
input:
71428 7 7 7 5 2 6 2 5 1 7 7 6 5 2 6 2 5 1 7 7 5 5 2 6 2 5 1 7 7 4 5 2 6 2 5 1 7 7 3 5 2 6 2 5 1 7 7 2 5 2 6 2 5 1 7 7 1 5 2 6 2 5 1 7 7 7 4 2 6 2 5 1 7 7 6 4 2 6 2 5 1 7 7 5 4 2 6 2 5 1 7 7 4 4 2 6 2 5 1 7 7 3 4 2 6 2 5 1 7 7 2 4 2 6 2 5 1 7 7 1 4 2 6 2 5 1 7 7 7 3 2 6 2 5 1 7 7 6 3 2 6 2 5 1 7 7 5 ...
output:
3 2 2 3 3 2 2 4 3 3 3 4 3 3 4 3 3 4 3 3 3 3 2 2 3 3 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 3 3 2 2 3 3 3 4 4 3 3 2 3 2 3 3 2 2 3 4 3 3 4 3 3 3 4 3 4 3 3 3 2 3 2 3 3 2 2 2 2 2 2 2 2 2 3 3 3 4 4 3 3 3 2 2 3 3 2 2 3 2 2 ...
result:
ok 71428 numbers
Test #36:
score: 0
Accepted
time: 86ms
memory: 3564kb
input:
62500 8 8 4 5 1 3 8 2 1 1 8 8 3 5 1 3 8 2 1 1 8 8 2 5 1 3 8 2 1 1 8 8 1 5 1 3 8 2 1 1 8 8 8 4 1 3 8 2 1 1 8 8 7 4 1 3 8 2 1 1 8 8 6 4 1 3 8 2 1 1 8 8 5 4 1 3 8 2 1 1 8 8 4 4 1 3 8 2 1 1 8 8 3 4 1 3 8 2 1 1 8 8 2 4 1 3 8 2 1 1 8 8 1 4 1 3 8 2 1 1 8 8 8 3 1 3 8 2 1 1 8 8 7 3 1 3 8 2 1 1 8 8 6 3 1 3 8 ...
output:
3 2 2 2 2 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 1 1 2 2 3 3 3 3 2 2 2 3 2 3 3 3 2 2 2 3 3 2 3 3 2 2 2 3 3 3 2 3 2 2 2 3 3 3 3 2 2 2 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 3 3 3 3 2 2 2 2 3 3 3 3 2 2 3 3 3 4 4 4 3 3 3 3 4 3 4 4 3 3 3 3 4 4 3 4 3 3 3 3 4 4 4 3 3 3 2 2 ...
result:
ok 62500 numbers
Extra Test:
score: 0
Extra Test Passed