QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#428652 | #8780. Training, Round 2 | ucup-team180# | AC ✓ | 638ms | 102132kb | C++20 | 32.5kb | 2024-06-01 20:50:03 | 2024-06-01 20:50:04 |
Judging History
answer
#pragma region Macros
#ifdef noimi
#pragma comment(linker, "/stack:256000000")
#include "my_template.hpp"
#else
// #pragma GCC target("avx2")
#pragma GCC optimize("Ofast")
#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
// 0 以上 2 ^ (6D) 未満の整数を取れる
// D : 3 -> 2.6 * 10 ^ 5
// D : 4 -> 1.6 * 10 ^ 7
// D : 5 -> 1.0 * 10 ^ 9
// D : 6 -> int の範囲全部
template <const int D = 6> struct FastSet {
int n;
using u64 = uint64_t;
vector<u64> a[D];
FastSet(int n_ = (1 << std::min(31, D * 6))) : n(n_) {
for(int i = 0; i < D; i++) {
n_ = (n_ + 63) >> 6;
a[i].assign(n_, 0);
}
}
bool empty() const { return !a[D - 1][0]; }
bool contains(int x) const { return (a[0][x >> 6] >> (x & 63)) & 1; }
void insert(int x) {
for(int i = 0; i < D; i++) {
const int y = x & 63;
x >>= 6;
a[i][x] |= 1ULL << y;
}
}
void erase(int x) {
for(int i = 0; i < D; i++) {
const int y = x & 63;
x >>= 6;
if((a[i][x] &= ~(1ULL << y))) break;
}
}
int next(int x) const {
for(int i = 0; i < D; i++) {
const int k = x >> 6, y = x & 63;
if(k >= a[i].size()) return n;
const u64 top = a[i][k] >> y;
if(top) {
x += __builtin_ctzll(top);
for(int j = i - 1; j >= 0; --j) x = x << 6 | __builtin_ctzll(a[j][x]);
return x;
}
x = k + 1;
}
return n;
}
int prev(int x) const {
for(int i = 0; i < D; ++i) {
if(x < 0) return -1;
const int k = x >> 6, y = x & 63;
const u64 bot = a[i][k] << (63 - y);
if(bot) {
x -= __builtin_clzll(bot);
for(int j = i - 1; j >= 0; --j) x = x << 6 | (63 - __builtin_clzll(a[j][x]));
return x;
}
x = k - 1;
}
return -1;
}
int max() const { return prev(n); }
int min() const { return next(0); }
};
int main() {
INT(n, p, q);
VEC4(ll, al, ar, bl, br, n);
rep(i, n) {
al[i] -= p;
ar[i] -= p;
chmax(al[i], 0);
chmin(ar[i], n);
bl[i] -= q;
br[i] -= q;
chmax(bl[i], 0);
chmin(br[i], n);
}
vv(int, dp, n + 1, n + 1, inf<int>);
dp[0][0] = 0;
int res = 0;
rep(i, n) {
FastSet<3> fs(n + 1);
vvc<int> v(n + 1), w(n + 1);
rep(t, n) {
if(al[t] > n or bl[t] >= n) continue;
if(br[t] < 0) continue;
if(al[t] <= i and i <= ar[t]) {
if(bl[t] == 0) {
fs.insert(t);
} else {
v[bl[t]].eb(t);
}
w[br[t]].eb(t);
}
}
rep(j, n) {
if(dp[i][j] != inf<int>) {
int k = fs.next(dp[i][j]);
if(k < n) chmin(dp[i + 1][j], k + 1), chmin(dp[i][j + 1], k + 1), chmax(res, i + 1 + j);
}
fore(e, v[j + 1]) fs.insert(e);
fore(e, w[j]) fs.erase(e);
}
}
OUT(res);
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3764kb
input:
3 0 0 0 1 0 1 1 1 0 1 1 1 1 1
output:
3
result:
ok single line: '3'
Test #2:
score: 0
Accepted
time: 140ms
memory: 101508kb
input:
5000 801577551 932138594 801577551 801577551 932138594 932138594 801577552 801577552 932138594 932138594 801577552 801577552 932138595 932138595 801577552 801577552 932138596 932138596 801577553 801577553 932138596 932138596 801577553 801577553 932138597 932138597 801577553 801577553 932138598 93213...
output:
5000
result:
ok single line: '5000'
Test #3:
score: 0
Accepted
time: 171ms
memory: 101484kb
input:
5000 932138594 801577551 932138594 932138594 801577551 801577551 932138594 932138594 801577552 801577552 932138595 932138595 801577552 801577552 932138596 932138596 801577552 801577552 932138596 932138596 801577553 801577553 932138597 932138597 801577553 801577553 932138598 932138598 801577553 80157...
output:
5000
result:
ok single line: '5000'
Test #4:
score: 0
Accepted
time: 164ms
memory: 101820kb
input:
5000 76836128 716580777 76836128 76836128 716580777 716580777 76836129 76836129 716580777 716580777 76836130 76836130 716580777 716580777 76836131 76836131 716580777 716580777 76836131 76836131 716580778 716580778 76836131 76836131 716580779 716580779 76836131 76836131 716580780 716580780 76836128 7...
output:
4994
result:
ok single line: '4994'
Test #5:
score: 0
Accepted
time: 166ms
memory: 101632kb
input:
5000 716580777 76836128 716580777 716580777 76836128 76836128 716580777 716580777 76836129 76836129 716580777 716580777 76836130 76836130 716580777 716580777 76836131 76836131 716580778 716580778 76836131 76836131 716580779 716580779 76836131 76836131 716580780 716580780 76836131 76836131 716580778 ...
output:
4994
result:
ok single line: '4994'
Test #6:
score: 0
Accepted
time: 157ms
memory: 101580kb
input:
5000 774827789 700294316 774827790 774827791 700294315 700294317 774827789 774827790 700294317 700294318 774827789 774827790 700294316 700294316 774827787 774827787 700294315 700294316 774827789 774827791 700294315 700294318 774827787 774827789 700294317 700294318 774827787 774827788 700294314 70029...
output:
5
result:
ok single line: '5'
Test #7:
score: 0
Accepted
time: 166ms
memory: 101580kb
input:
5000 700294316 774827789 700294315 700294317 774827790 774827791 700294317 700294318 774827789 774827790 700294316 700294316 774827789 774827790 700294315 700294316 774827787 774827787 700294315 700294318 774827789 774827791 700294317 700294318 774827787 774827789 700294314 700294318 774827787 77482...
output:
5
result:
ok single line: '5'
Test #8:
score: 0
Accepted
time: 155ms
memory: 101484kb
input:
5000 256309650 340081224 256309647 256309649 340081224 340081227 256309645 256309650 340081226 340081229 256309652 256309652 340081219 340081220 256309645 256309655 340081222 340081226 256309646 256309648 340081221 340081225 256309651 256309654 340081219 340081221 256309651 256309653 340081219 34008...
output:
11
result:
ok single line: '11'
Test #9:
score: 0
Accepted
time: 152ms
memory: 101532kb
input:
5000 340081224 256309650 340081224 340081227 256309647 256309649 340081226 340081229 256309645 256309650 340081219 340081220 256309652 256309652 340081222 340081226 256309645 256309655 340081221 340081225 256309646 256309648 340081219 340081221 256309651 256309654 340081219 340081226 256309651 25630...
output:
11
result:
ok single line: '11'
Test #10:
score: 0
Accepted
time: 138ms
memory: 102092kb
input:
5000 490966735 218892297 490966732 490966733 218892303 218892305 490966741 490966741 218892298 218892301 490966733 490966735 218892291 218892297 490966729 490966734 218892296 218892301 490966742 490966745 218892287 218892303 490966726 490966738 218892301 218892305 490966726 490966730 218892292 21889...
output:
21
result:
ok single line: '21'
Test #11:
score: 0
Accepted
time: 139ms
memory: 102040kb
input:
5000 218892297 490966735 218892303 218892305 490966732 490966733 218892298 218892301 490966741 490966741 218892291 218892297 490966733 490966735 218892296 218892301 490966729 490966734 218892287 218892303 490966742 490966745 218892301 218892305 490966726 490966738 218892292 218892300 490966726 49096...
output:
21
result:
ok single line: '21'
Test #12:
score: 0
Accepted
time: 135ms
memory: 102112kb
input:
5000 619930859 159808007 619930853 619930854 159808007 159808017 619930840 619930856 159808013 159808025 619930848 619930864 159807995 159808009 619930844 619930847 159808008 159808022 619930848 619930856 159807995 159808001 619930850 619930852 159808020 159808022 619930853 619930871 159807992 15980...
output:
41
result:
ok single line: '41'
Test #13:
score: 0
Accepted
time: 139ms
memory: 102032kb
input:
5000 159808007 619930859 159808007 159808017 619930853 619930854 159808013 159808025 619930840 619930856 159807995 159808009 619930848 619930864 159808008 159808022 619930844 619930847 159807995 159808001 619930848 619930856 159808020 159808022 619930850 619930852 159807992 159808024 619930853 61993...
output:
41
result:
ok single line: '41'
Test #14:
score: 0
Accepted
time: 151ms
memory: 101780kb
input:
5000 974187020 583788009 974186973 974187017 583788001 583788028 974187035 974187052 583788011 583788027 974187016 974187037 583787973 583787981 974187036 974187046 583788012 583788028 974187046 974187066 583788042 583788056 974186994 974187016 583788013 583788044 974186986 974186989 583787969 58378...
output:
100
result:
ok single line: '100'
Test #15:
score: 0
Accepted
time: 147ms
memory: 101884kb
input:
5000 583788009 974187020 583788001 583788028 974186973 974187017 583788011 583788027 974187035 974187052 583787973 583787981 974187016 974187037 583788012 583788028 974187036 974187046 583788042 583788056 974187046 974187066 583788013 583788044 974186994 974187016 583787969 583787994 974186986 97418...
output:
100
result:
ok single line: '100'
Test #16:
score: 0
Accepted
time: 151ms
memory: 101820kb
input:
5000 684153868 455686026 684153781 684153927 455685991 455686049 684153899 684153921 455686036 455686037 684153784 684153959 455685984 455686049 684153967 684153968 455685927 455686014 684153795 684153963 455685926 455686026 684153787 684153846 455686084 455686105 684153817 684153870 455685928 45568...
output:
195
result:
ok single line: '195'
Test #17:
score: 0
Accepted
time: 153ms
memory: 101884kb
input:
5000 455686026 684153868 455685991 455686049 684153781 684153927 455686036 455686037 684153899 684153921 455685984 455686049 684153784 684153959 455685927 455686014 684153967 684153968 455685926 455686026 684153795 684153963 455686084 455686105 684153787 684153846 455685928 455686002 684153817 68415...
output:
195
result:
ok single line: '195'
Test #18:
score: 0
Accepted
time: 168ms
memory: 101888kb
input:
5000 999613320 323981653 999613235 999613461 323981523 323981741 999613292 999613510 323981543 323981775 999613390 999613409 323981669 323981831 999613416 999613497 323981638 323981846 999613234 999613269 323981627 323981669 999613414 999613489 323981453 323981526 999613174 999613358 323981489 32398...
output:
366
result:
ok single line: '366'
Test #19:
score: 0
Accepted
time: 150ms
memory: 101836kb
input:
5000 323981653 999613320 323981523 323981741 999613235 999613461 323981543 323981775 999613292 999613510 323981669 323981831 999613390 999613409 323981638 323981846 999613416 999613497 323981627 323981669 999613234 999613269 323981453 323981526 999613414 999613489 323981489 323981828 999613174 99961...
output:
366
result:
ok single line: '366'
Test #20:
score: 0
Accepted
time: 180ms
memory: 102124kb
input:
5000 555184387 498929492 555184771 555184789 498929431 498929765 555184225 555184302 498929308 498929410 555184166 555184206 498929155 498929424 555183905 555184344 498929667 498929688 555184514 555184517 498929218 498929639 555184130 555184438 498929083 498929692 555184520 555184681 498929153 49892...
output:
756
result:
ok single line: '756'
Test #21:
score: 0
Accepted
time: 188ms
memory: 101780kb
input:
5000 498929492 555184387 498929431 498929765 555184771 555184789 498929308 498929410 555184225 555184302 498929155 498929424 555184166 555184206 498929667 498929688 555183905 555184344 498929218 498929639 555184514 555184517 498929083 498929692 555184130 555184438 498929153 498929492 555184520 55518...
output:
756
result:
ok single line: '756'
Test #22:
score: 0
Accepted
time: 234ms
memory: 101792kb
input:
5000 327086314 361426926 327086391 327086498 361426795 361426862 327087242 327087265 361426028 361426757 327085406 327085747 361427142 361427629 327085932 327086728 361426413 361426860 327086865 327087286 361426227 361427022 327086349 327086614 361426292 361427428 327086146 327086917 361426972 36142...
output:
1085
result:
ok single line: '1085'
Test #23:
score: 0
Accepted
time: 232ms
memory: 101792kb
input:
5000 361426926 327086314 361426795 361426862 327086391 327086498 361426028 361426757 327087242 327087265 361427142 361427629 327085406 327085747 361426413 361426860 327085932 327086728 361426227 361427022 327086865 327087286 361426292 361427428 327086349 327086614 361426972 361427709 327086146 32708...
output:
1085
result:
ok single line: '1085'
Test #24:
score: 0
Accepted
time: 323ms
memory: 102060kb
input:
5000 560545009 364655365 560544094 560544468 364654564 364655453 560544678 560544990 364655025 364657166 560543214 560546293 364653406 364653543 560543357 560543693 364655127 364656160 560545488 560546995 364657009 364657335 560543926 560546723 364654376 364656787 560545999 560546522 364654686 36465...
output:
1209
result:
ok single line: '1209'
Test #25:
score: 0
Accepted
time: 330ms
memory: 101844kb
input:
5000 364655365 560545009 364654564 364655453 560544094 560544468 364655025 364657166 560544678 560544990 364653406 364653543 560543214 560546293 364655127 364656160 560543357 560543693 364657009 364657335 560545488 560546995 364654376 364656787 560543926 560546723 364654686 364656158 560545999 56054...
output:
1209
result:
ok single line: '1209'
Test #26:
score: 0
Accepted
time: 638ms
memory: 102072kb
input:
5000 812313462 162480149 812311271 812316617 162475502 162476097 812314180 812316398 162475976 162477137 812311826 812311880 162475344 162484969 812315907 812317031 162481854 162484730 812309714 812310689 162479161 162482743 812313057 812316810 162484347 162484637 812313889 812314992 162478489 16248...
output:
1313
result:
ok single line: '1313'
Test #27:
score: 0
Accepted
time: 635ms
memory: 102132kb
input:
5000 162480149 812313462 162475502 162476097 812311271 812316617 162475976 162477137 812314180 812316398 162475344 162484969 812311826 812311880 162481854 162484730 812315907 812317031 162479161 162482743 812309714 812310689 162484347 162484637 812313057 812316810 162478489 162484275 812313889 81231...
output:
1313
result:
ok single line: '1313'
Test #28:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
10 8 3 4 8 1 6 6 8 5 10 2 5 2 3 4 6 3 4 1 8 1 5 2 6 7 10 4 8 2 4 3 10 2 7 5 6 7 10 2 6 3 9
output:
3
result:
ok single line: '3'
Test #29:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
10 3 8 1 6 4 8 5 10 6 8 2 3 2 5 3 4 4 6 1 5 1 8 7 10 2 6 2 4 4 8 2 7 3 10 7 10 5 6 3 9 2 6
output:
3
result:
ok single line: '3'
Test #30:
score: 0
Accepted
time: 187ms
memory: 101692kb
input:
5000 556379231 551454694 556379231 556379231 551454694 551454694 556379231 556379231 551454695 551454695 556379231 556379231 551454696 551454696 556379231 556379231 551454697 551454697 556379232 556379232 551454694 551454694 556379232 556379232 551454697 551454697 556379233 556379233 551454694 55145...
output:
2502
result:
ok single line: '2502'
Test #31:
score: 0
Accepted
time: 184ms
memory: 101516kb
input:
5000 551454694 556379231 551454694 551454694 556379231 556379231 551454695 551454695 556379231 556379231 551454696 551454696 556379231 556379231 551454697 551454697 556379231 556379231 551454694 551454694 556379232 556379232 551454697 551454697 556379232 556379232 551454694 551454694 556379233 55637...
output:
2502
result:
ok single line: '2502'
Test #32:
score: 0
Accepted
time: 165ms
memory: 101480kb
input:
5000 627057749 540073176 627057749 627057749 540073176 540073176 627057749 627057749 540073177 540073177 627057749 627057749 540073178 540073178 627057749 627057749 540073179 540073179 627057749 627057749 540073180 540073180 627057749 627057749 540073181 540073181 627057749 627057749 540073182 54007...
output:
1257
result:
ok single line: '1257'
Test #33:
score: 0
Accepted
time: 163ms
memory: 101676kb
input:
5000 540073176 627057749 540073176 540073176 627057749 627057749 540073177 540073177 627057749 627057749 540073178 540073178 627057749 627057749 540073179 540073179 627057749 627057749 540073180 540073180 627057749 627057749 540073181 540073181 627057749 627057749 540073182 540073182 627057749 62705...
output:
1257
result:
ok single line: '1257'
Test #34:
score: 0
Accepted
time: 155ms
memory: 101696kb
input:
5000 526047184 798772011 526047184 526047184 798772011 798772011 526047184 526047184 798772012 798772012 526047184 526047184 798772013 798772013 526047184 526047184 798772014 798772014 526047184 526047184 798772015 798772015 526047184 526047184 798772016 798772016 526047184 526047184 798772017 79877...
output:
730
result:
ok single line: '730'
Test #35:
score: 0
Accepted
time: 186ms
memory: 101628kb
input:
5000 798772011 526047184 798772011 798772011 526047184 526047184 798772012 798772012 526047184 526047184 798772013 798772013 526047184 526047184 798772014 798772014 526047184 526047184 798772015 798772015 526047184 526047184 798772016 798772016 526047184 526047184 798772017 798772017 526047184 52604...
output:
730
result:
ok single line: '730'
Test #36:
score: 0
Accepted
time: 156ms
memory: 101456kb
input:
5000 994614683 515420967 994614683 994614683 515420967 515420967 994614683 994614683 515420968 515420968 994614683 994614683 515420969 515420969 994614683 994614683 515420970 515420970 994614683 994614683 515420971 515420971 994614683 994614683 515420972 515420972 994614683 994614683 515420973 51542...
output:
525
result:
ok single line: '525'
Test #37:
score: 0
Accepted
time: 162ms
memory: 101512kb
input:
5000 515420967 994614683 515420967 515420967 994614683 994614683 515420968 515420968 994614683 994614683 515420969 515420969 994614683 994614683 515420970 515420970 994614683 994614683 515420971 515420971 994614683 994614683 515420972 515420972 994614683 994614683 515420973 515420973 994614683 99461...
output:
525
result:
ok single line: '525'
Test #38:
score: 0
Accepted
time: 143ms
memory: 101544kb
input:
5000 106345465 472914431 106345465 106345465 472914431 472914431 106345465 106345465 472914432 472914432 106345465 106345465 472914433 472914433 106345465 106345465 472914434 472914434 106345465 106345465 472914435 472914435 106345465 106345465 472914436 472914436 106345465 106345465 472914437 47291...
output:
394
result:
ok single line: '394'
Test #39:
score: 0
Accepted
time: 164ms
memory: 101480kb
input:
5000 472914431 106345465 472914431 472914431 106345465 106345465 472914432 472914432 106345465 106345465 472914433 472914433 106345465 106345465 472914434 472914434 106345465 106345465 472914435 472914435 106345465 106345465 472914436 472914436 106345465 106345465 472914437 472914437 106345465 10634...
output:
394
result:
ok single line: '394'
Test #40:
score: 0
Accepted
time: 166ms
memory: 101504kb
input:
5000 873587283 226770592 873587283 873587283 226770592 226770592 873587283 873587283 226770593 226770593 873587283 873587283 226770594 226770594 873587283 873587283 226770595 226770595 873587283 873587283 226770596 226770596 873587283 873587283 226770597 226770597 873587283 873587283 226770598 22677...
output:
340
result:
ok single line: '340'
Test #41:
score: 0
Accepted
time: 175ms
memory: 101500kb
input:
5000 226770592 873587283 226770592 226770592 873587283 873587283 226770593 226770593 873587283 873587283 226770594 226770594 873587283 873587283 226770595 226770595 873587283 873587283 226770596 226770596 873587283 873587283 226770597 226770597 873587283 873587283 226770598 226770598 873587283 87358...
output:
340
result:
ok single line: '340'
Test #42:
score: 0
Accepted
time: 171ms
memory: 101700kb
input:
5000 881111438 948400691 881111438 881111438 948400691 948400691 881111438 881111438 948400692 948400692 881111438 881111438 948400693 948400693 881111438 881111438 948400694 948400694 881111438 881111438 948400695 948400695 881111438 881111438 948400696 948400696 881111438 881111438 948400697 94840...
output:
305
result:
ok single line: '305'
Test #43:
score: 0
Accepted
time: 163ms
memory: 101496kb
input:
5000 948400691 881111438 948400691 948400691 881111438 881111438 948400692 948400692 881111438 881111438 948400693 948400693 881111438 881111438 948400694 948400694 881111438 881111438 948400695 948400695 881111438 881111438 948400696 948400696 881111438 881111438 948400697 948400697 881111438 88111...
output:
305
result:
ok single line: '305'
Test #44:
score: 0
Accepted
time: 185ms
memory: 101496kb
input:
5000 505616064 780595191 505616064 505616064 780595191 780595191 505616064 505616064 780595192 780595192 505616064 505616064 780595193 780595193 505616064 505616064 780595194 780595194 505616064 505616064 780595195 780595195 505616064 505616064 780595196 780595196 505616064 505616064 780595197 78059...
output:
275
result:
ok single line: '275'
Test #45:
score: 0
Accepted
time: 131ms
memory: 101476kb
input:
5000 780595191 505616064 780595191 780595191 505616064 505616064 780595192 780595192 505616064 505616064 780595193 780595193 505616064 505616064 780595194 780595194 505616064 505616064 780595195 780595195 505616064 505616064 780595196 780595196 505616064 505616064 780595197 780595197 505616064 50561...
output:
275
result:
ok single line: '275'
Test #46:
score: 0
Accepted
time: 180ms
memory: 101488kb
input:
5000 796339010 365366778 796339010 796339010 365366778 365366778 796339010 796339010 365366779 365366779 796339010 796339010 365366780 365366780 796339010 796339010 365366781 365366781 796339010 796339010 365366782 365366782 796339010 796339010 365366783 365366783 796339010 796339010 365366784 36536...
output:
261
result:
ok single line: '261'
Test #47:
score: 0
Accepted
time: 200ms
memory: 101512kb
input:
5000 365366778 796339010 365366778 365366778 796339010 796339010 365366779 365366779 796339010 796339010 365366780 365366780 796339010 796339010 365366781 365366781 796339010 796339010 365366782 365366782 796339010 796339010 365366783 365366783 796339010 796339010 365366784 365366784 796339010 79633...
output:
261
result:
ok single line: '261'
Test #48:
score: 0
Accepted
time: 188ms
memory: 101560kb
input:
5000 447023427 149861771 447023427 447023427 149861771 149861771 447023427 447023427 149861772 149861772 447023427 447023427 149861773 149861773 447023427 447023427 149861774 149861774 447023427 447023427 149861775 149861775 447023427 447023427 149861776 149861776 447023427 447023427 149861777 14986...
output:
251
result:
ok single line: '251'
Test #49:
score: 0
Accepted
time: 130ms
memory: 101492kb
input:
5000 149861771 447023427 149861771 149861771 447023427 447023427 149861772 149861772 447023427 447023427 149861773 149861773 447023427 447023427 149861774 149861774 447023427 447023427 149861775 149861775 447023427 447023427 149861776 149861776 447023427 447023427 149861777 149861777 447023427 44702...
output:
251
result:
ok single line: '251'
Test #50:
score: 0
Accepted
time: 199ms
memory: 101500kb
input:
5000 503408624 711440253 503408624 503408624 711440253 711440253 503408624 503408624 711440254 711440254 503408624 503408624 711440255 711440255 503408624 503408624 711440256 711440256 503408624 503408624 711440257 711440257 503408624 503408624 711440258 711440258 503408624 503408624 711440259 71144...
output:
244
result:
ok single line: '244'
Test #51:
score: 0
Accepted
time: 152ms
memory: 101552kb
input:
5000 711440253 503408624 711440253 711440253 503408624 503408624 711440254 711440254 503408624 503408624 711440255 711440255 503408624 503408624 711440256 711440256 503408624 503408624 711440257 711440257 503408624 503408624 711440258 711440258 503408624 503408624 711440259 711440259 503408624 50340...
output:
244
result:
ok single line: '244'
Test #52:
score: 0
Accepted
time: 546ms
memory: 101640kb
input:
5000 344295798 575590522 344295798 344295798 575590522 575590522 344295798 344295799 575590522 575590523 344295798 344295800 575590522 575590524 344295798 344295801 575590522 575590525 344295798 344295802 575590522 575590526 344295798 344295803 575590522 575590527 344295798 344295804 575590522 57559...
output:
5000
result:
ok single line: '5000'
Test #53:
score: 0
Accepted
time: 525ms
memory: 101564kb
input:
5000 575590522 344295798 575590522 575590522 344295798 344295798 575590522 575590523 344295798 344295799 575590522 575590524 344295798 344295800 575590522 575590525 344295798 344295801 575590522 575590526 344295798 344295802 575590522 575590527 344295798 344295803 575590522 575590528 344295798 34429...
output:
5000
result:
ok single line: '5000'
Test #54:
score: 0
Accepted
time: 159ms
memory: 101560kb
input:
5000 34791211 730469974 34791211 34791211 730469974 730469974 34791212 34791212 730469974 730469974 34791213 34791213 730469974 730469974 34791214 34791214 730469974 730469974 34791215 34791215 730469974 730469974 34791216 34791216 730469974 730469974 34791217 34791217 730469974 730469974 34791218 3...
output:
2003
result:
ok single line: '2003'
Test #55:
score: 0
Accepted
time: 152ms
memory: 101540kb
input:
5000 730469974 34791211 730469974 730469974 34791211 34791211 730469974 730469974 34791212 34791212 730469974 730469974 34791213 34791213 730469974 730469974 34791214 34791214 730469974 730469974 34791215 34791215 730469974 730469974 34791216 34791216 730469974 730469974 34791217 34791217 730469974 ...
output:
2003
result:
ok single line: '2003'
Test #56:
score: 0
Accepted
time: 180ms
memory: 101488kb
input:
5000 523624466 452862699 523624466 523624466 452862699 452862699 523624467 523624467 452862699 452862699 523624468 523624468 452862699 452862699 523624469 523624469 452862699 452862699 523624470 523624470 452862699 452862699 523624471 523624471 452862699 452862699 523624472 523624472 452862699 45286...
output:
2005
result:
ok single line: '2005'
Test #57:
score: 0
Accepted
time: 175ms
memory: 101568kb
input:
5000 452862699 523624466 452862699 452862699 523624466 523624466 452862699 452862699 523624467 523624467 452862699 452862699 523624468 523624468 452862699 452862699 523624469 523624469 452862699 452862699 523624470 523624470 452862699 452862699 523624471 523624471 452862699 452862699 523624472 52362...
output:
2005
result:
ok single line: '2005'
Test #58:
score: 0
Accepted
time: 152ms
memory: 101712kb
input:
5000 63213004 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 8668382...
output:
1
result:
ok single line: '1'
Test #59:
score: 0
Accepted
time: 167ms
memory: 101604kb
input:
5000 86683825 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 63213004 63213004 86683825 86683825 6321300...
output:
1
result:
ok single line: '1'
Test #60:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
10 0 0 0 1 0 3 0 4 0 5 0 0 0 1 1 1 1 3 1 2 2 2 1 9 4 4 1 10 0 1 3 12 2 6 3 3 1 6 3 5 8 17
output:
5
result:
ok single line: '5'
Test #61:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
5 0 0 0 1 0 3 0 0 0 3 0 5 1 9 0 8 0 0 1 6 0 0
output:
3
result:
ok single line: '3'
Test #62:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
31 0 0 0 0 0 0 0 0 1 1 0 0 2 2 0 0 3 3 0 0 4 4 0 0 5 5 0 0 6 6 1 1 6 6 1 1 0 0 2 2 0 0 3 3 0 0 4 4 0 0 5 5 0 0 6 6 0 0 6 6 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9
output:
18
result:
ok single line: '18'
Test #63:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
9 100 100 96 112 66 133 64 105 77 147 102 116 58 127 98 120 58 143 99 103 52 150 74 106 95 144 53 100 64 150 94 131 57 100 96 124 83 100
output:
7
result:
ok single line: '7'
Test #64:
score: 0
Accepted
time: 0ms
memory: 3492kb
input:
24 100 100 65 135 76 119 85 127 91 133 89 124 72 123 95 109 60 112 103 134 75 124 94 129 51 141 88 115 89 133 89 143 52 125 68 130 104 108 71 125 95 108 84 106 100 150 102 123 110 150 53 101 99 108 92 112 100 120 92 117 95 102 94 134 67 100 99 143 108 116 58 148 94 103 105 150 79 133 75 105 63 147 8...
output:
19
result:
ok single line: '19'