QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#764833 | #6733. Moniphant Sleep | maspy | AC ✓ | 532ms | 36388kb | C++23 | 18.4kb | 2024-11-20 10:52:51 | 2024-11-20 10:52:58 |
Judging History
answer
#line 1 "/home/maspy/compro/library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else
// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("Ofast,unroll-loops")
// いまの CF だとこれ入れると動かない?
// #pragma GCC target("avx2,popcnt")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using u8 = uint8_t;
using u16 = uint16_t;
using u32 = uint32_t;
using u64 = uint64_t;
using i128 = __int128;
using u128 = unsigned __int128;
using f128 = __float128;
template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'010'000'000;
template <>
constexpr ll infty<ll> = 2'020'000'000'000'000'000;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * 2'000'000'000'000'000'000;
template <>
constexpr double infty<double> = infty<ll>;
template <>
constexpr long double infty<long double> = infty<ll>;
using pi = pair<ll, ll>;
using vi = vector<ll>;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vector<vc<T>>;
template <class T>
using vvvc = vector<vvc<T>>;
template <class T>
using vvvvc = vector<vvvc<T>>;
template <class T>
using vvvvvc = vector<vvvvc<T>>;
template <class T>
using pq = priority_queue<T>;
template <class T>
using pqg = priority_queue<T, vector<T>, greater<T>>;
#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__))))
// https://trap.jp/post/1224/
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR4(i, a, b, c) for (ll i = a; i < ll(b); i += (c))
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload4(a, b, c, d, e, ...) e
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload4(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)
#define FOR_subset(t, s) for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define elif else if
#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second
#define stoi stoll
int popcnt(int x) { return __builtin_popcount(x); }
int popcnt(u32 x) { return __builtin_popcount(x); }
int popcnt(ll x) { return __builtin_popcountll(x); }
int popcnt(u64 x) { return __builtin_popcountll(x); }
int popcnt_sgn(int x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(u32 x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(ll x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
int popcnt_sgn(u64 x) { return (__builtin_parity(x) & 1 ? -1 : 1); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 1, 2)
int topbit(int x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(u32 x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(ll x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
int topbit(u64 x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 0, 2)
int lowbit(int x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(u32 x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(ll x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
int lowbit(u64 x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
template <typename T>
T kth_bit(int k) {
return T(1) << k;
}
template <typename T>
bool has_kth_bit(T x, int k) {
return x >> k & 1;
}
template <typename T>
T floor(T a, T b) {
return a / b - (a % b && (a ^ b) < 0);
}
template <typename T>
T ceil(T x, T y) {
return floor(x + y - 1, y);
}
template <typename T>
T bmod(T x, T y) {
return x - y * floor(x, y);
}
template <typename T>
pair<T, T> divmod(T x, T y) {
T q = floor(x, y);
return {q, x - q * y};
}
template <typename T, typename U>
T SUM(const vector<U> &A) {
T sm = 0;
for (auto &&a: A) sm += a;
return sm;
}
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define UNIQUE(x) sort(all(x)), x.erase(unique(all(x)), x.end()), x.shrink_to_fit()
template <typename T>
T POP(deque<T> &que) {
T a = que.front();
que.pop_front();
return a;
}
template <typename T>
T POP(pq<T> &que) {
T a = que.top();
que.pop();
return a;
}
template <typename T>
T POP(pqg<T> &que) {
T a = que.top();
que.pop();
return a;
}
template <typename T>
T POP(vc<T> &que) {
T a = que.back();
que.pop_back();
return a;
}
template <typename F>
ll binary_search(F check, ll ok, ll ng, bool check_ok = true) {
if (check_ok) assert(check(ok));
while (abs(ok - ng) > 1) {
auto x = (ng + ok) / 2;
(check(x) ? ok : ng) = x;
}
return ok;
}
template <typename F>
double binary_search_real(F check, double ok, double ng, int iter = 100) {
FOR(iter) {
double x = (ok + ng) / 2;
(check(x) ? ok : ng) = x;
}
return (ok + ng) / 2;
}
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);
}
// ? は -1
vc<int> s_to_vi(const string &S, char first_char) {
vc<int> A(S.size());
FOR(i, S.size()) { A[i] = (S[i] != '?' ? S[i] - first_char : -1); }
return A;
}
template <typename T, typename U>
vector<T> cumsum(vector<U> &A, int off = 1) {
int N = A.size();
vector<T> B(N + 1);
FOR(i, N) { B[i + 1] = B[i] + A[i]; }
if (off == 0) B.erase(B.begin());
return B;
}
// stable sort
template <typename T>
vector<int> argsort(const vector<T> &A) {
vector<int> ids(len(A));
iota(all(ids), 0);
sort(all(ids), [&](int i, int j) { return (A[i] == A[j] ? i < j : A[i] < A[j]); });
return ids;
}
// A[I[0]], A[I[1]], ...
template <typename T>
vc<T> rearrange(const vc<T> &A, const vc<int> &I) {
vc<T> B(len(I));
FOR(i, len(I)) B[i] = A[I[i]];
return B;
}
template <typename T, typename... Vectors>
void concat(vc<T> &first, const Vectors &... others) {
vc<T> &res = first;
(res.insert(res.end(), others.begin(), others.end()), ...);
}
#endif
#line 1 "/home/maspy/compro/library/other/io.hpp"
#define FASTIO
#include <unistd.h>
// https://judge.yosupo.jp/submission/21623
namespace fastio {
static constexpr uint32_t SZ = 1 << 17;
char ibuf[SZ];
char obuf[SZ];
char out[100];
// pointer of ibuf, obuf
uint32_t pil = 0, pir = 0, por = 0;
struct Pre {
char num[10000][4];
constexpr Pre() : num() {
for (int i = 0; i < 10000; i++) {
int n = i;
for (int j = 3; j >= 0; j--) {
num[i][j] = n % 10 | '0';
n /= 10;
}
}
}
} constexpr pre;
inline void load() {
memcpy(ibuf, ibuf + pil, pir - pil);
pir = pir - pil + fread(ibuf + pir - pil, 1, SZ - pir + pil, stdin);
pil = 0;
if (pir < SZ) ibuf[pir++] = '\n';
}
inline void flush() {
fwrite(obuf, 1, por, stdout);
por = 0;
}
void rd(char &c) {
do {
if (pil + 1 > pir) load();
c = ibuf[pil++];
} while (isspace(c));
}
void rd(string &x) {
x.clear();
char c;
do {
if (pil + 1 > pir) load();
c = ibuf[pil++];
} while (isspace(c));
do {
x += c;
if (pil == pir) load();
c = ibuf[pil++];
} while (!isspace(c));
}
template <typename T>
void rd_real(T &x) {
string s;
rd(s);
x = stod(s);
}
template <typename T>
void rd_integer(T &x) {
if (pil + 100 > pir) load();
char c;
do
c = ibuf[pil++];
while (c < '-');
bool minus = 0;
if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
if (c == '-') { minus = 1, c = ibuf[pil++]; }
}
x = 0;
while ('0' <= c) { x = x * 10 + (c & 15), c = ibuf[pil++]; }
if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
if (minus) x = -x;
}
}
void rd(int &x) { rd_integer(x); }
void rd(ll &x) { rd_integer(x); }
void rd(i128 &x) { rd_integer(x); }
void rd(u32 &x) { rd_integer(x); }
void rd(u64 &x) { rd_integer(x); }
void rd(u128 &x) { rd_integer(x); }
void rd(double &x) { rd_real(x); }
void rd(long double &x) { rd_real(x); }
void rd(f128 &x) { rd_real(x); }
template <class T, class U>
void rd(pair<T, U> &p) {
return rd(p.first), rd(p.second);
}
template <size_t N = 0, typename T>
void rd_tuple(T &t) {
if constexpr (N < std::tuple_size<T>::value) {
auto &x = std::get<N>(t);
rd(x);
rd_tuple<N + 1>(t);
}
}
template <class... T>
void rd(tuple<T...> &tpl) {
rd_tuple(tpl);
}
template <size_t N = 0, typename T>
void rd(array<T, N> &x) {
for (auto &d: x) rd(d);
}
template <class T>
void rd(vc<T> &x) {
for (auto &d: x) rd(d);
}
void read() {}
template <class H, class... T>
void read(H &h, T &... t) {
rd(h), read(t...);
}
void wt(const char c) {
if (por == SZ) flush();
obuf[por++] = c;
}
void wt(const string s) {
for (char c: s) wt(c);
}
void wt(const char *s) {
size_t len = strlen(s);
for (size_t i = 0; i < len; i++) wt(s[i]);
}
template <typename T>
void wt_integer(T x) {
if (por > SZ - 100) flush();
if (x < 0) { obuf[por++] = '-', x = -x; }
int outi;
for (outi = 96; x >= 10000; outi -= 4) {
memcpy(out + outi, pre.num[x % 10000], 4);
x /= 10000;
}
if (x >= 1000) {
memcpy(obuf + por, pre.num[x], 4);
por += 4;
} else if (x >= 100) {
memcpy(obuf + por, pre.num[x] + 1, 3);
por += 3;
} else if (x >= 10) {
int q = (x * 103) >> 10;
obuf[por] = q | '0';
obuf[por + 1] = (x - q * 10) | '0';
por += 2;
} else
obuf[por++] = x | '0';
memcpy(obuf + por, out + outi + 4, 96 - outi);
por += 96 - outi;
}
template <typename T>
void wt_real(T x) {
ostringstream oss;
oss << fixed << setprecision(15) << double(x);
string s = oss.str();
wt(s);
}
void wt(int x) { wt_integer(x); }
void wt(ll x) { wt_integer(x); }
void wt(i128 x) { wt_integer(x); }
void wt(u32 x) { wt_integer(x); }
void wt(u64 x) { wt_integer(x); }
void wt(u128 x) { wt_integer(x); }
void wt(double x) { wt_real(x); }
void wt(long double x) { wt_real(x); }
void wt(f128 x) { wt_real(x); }
template <class T, class U>
void wt(const pair<T, U> val) {
wt(val.first);
wt(' ');
wt(val.second);
}
template <size_t N = 0, typename T>
void wt_tuple(const T t) {
if constexpr (N < std::tuple_size<T>::value) {
if constexpr (N > 0) { wt(' '); }
const auto x = std::get<N>(t);
wt(x);
wt_tuple<N + 1>(t);
}
}
template <class... T>
void wt(tuple<T...> tpl) {
wt_tuple(tpl);
}
template <class T, size_t S>
void wt(const array<T, S> val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) wt(' ');
wt(val[i]);
}
}
template <class T>
void wt(const vector<T> val) {
auto n = val.size();
for (size_t i = 0; i < n; i++) {
if (i) wt(' ');
wt(val[i]);
}
}
void print() { wt('\n'); }
template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
wt(head);
if (sizeof...(Tail)) wt(' ');
print(forward<Tail>(tail)...);
}
// gcc expansion. called automaticall after main.
void __attribute__((destructor)) _d() { flush(); }
} // namespace fastio
using fastio::read;
using fastio::print;
using fastio::flush;
#if defined(LOCAL)
#define SHOW(...) SHOW_IMPL(__VA_ARGS__, SHOW6, SHOW5, SHOW4, SHOW3, SHOW2, SHOW1)(__VA_ARGS__)
#define SHOW_IMPL(_1, _2, _3, _4, _5, _6, NAME, ...) NAME
#define SHOW1(x) print(#x, "=", (x)), flush()
#define SHOW2(x, y) print(#x, "=", (x), #y, "=", (y)), flush()
#define SHOW3(x, y, z) print(#x, "=", (x), #y, "=", (y), #z, "=", (z)), flush()
#define SHOW4(x, y, z, w) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w)), flush()
#define SHOW5(x, y, z, w, v) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v)), flush()
#define SHOW6(x, y, z, w, v, u) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v), #u, "=", (u)), flush()
#else
#define SHOW(...)
#endif
#define INT(...) \
int __VA_ARGS__; \
read(__VA_ARGS__)
#define LL(...) \
ll __VA_ARGS__; \
read(__VA_ARGS__)
#define U32(...) \
u32 __VA_ARGS__; \
read(__VA_ARGS__)
#define U64(...) \
u64 __VA_ARGS__; \
read(__VA_ARGS__)
#define STR(...) \
string __VA_ARGS__; \
read(__VA_ARGS__)
#define CHAR(...) \
char __VA_ARGS__; \
read(__VA_ARGS__)
#define DBL(...) \
double __VA_ARGS__; \
read(__VA_ARGS__)
#define VEC(type, name, size) \
vector<type> name(size); \
read(name)
#define VV(type, name, h, w) \
vector<vector<type>> name(h, vector<type>(w)); \
read(name)
void YES(bool t = 1) { print(t ? "YES" : "NO"); }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { print(t ? "Yes" : "No"); }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { print(t ? "yes" : "no"); }
void no(bool t = 1) { yes(!t); }
#line 3 "main.cpp"
#line 2 "/home/maspy/compro/library/ds/segtree/dual_segtree.hpp"
template <typename Monoid>
struct Dual_SegTree {
using MA = Monoid;
using A = typename MA::value_type;
int n, log, size;
vc<A> laz;
Dual_SegTree() : Dual_SegTree(0) {}
Dual_SegTree(int n) {
build(n, [&](int i) -> A { return MA::unit(); });
}
template <typename F>
Dual_SegTree(int n, F f) {
build(n, f);
}
template <typename F>
void build(int m, F f) {
n = m;
log = 1;
while ((1 << log) < n) ++log;
size = 1 << log;
laz.assign(size << 1, MA::unit());
FOR(i, n) laz[size + i] = f(i);
}
void build(int n) {
build(n, [&](int i) -> A { return MA::unit(); });
}
A get(int p) {
assert(0 <= p && p < n);
p += size;
for (int i = log; i >= 1; i--) push(p >> i);
return laz[p];
}
vc<A> get_all() {
FOR(i, size) push(i);
return {laz.begin() + size, laz.begin() + size + n};
}
void set(int p, A x) {
get(p);
laz[p + size] = x;
}
void apply(int l, int r, const A& a) {
assert(0 <= l && l <= r && r <= n);
if (l == r) return;
l += size, r += size;
if (!MA::commute) {
for (int i = log; i >= 1; i--) {
if (((l >> i) << i) != l) push(l >> i);
if (((r >> i) << i) != r) push((r - 1) >> i);
}
}
while (l < r) {
if (l & 1) all_apply(l++, a);
if (r & 1) all_apply(--r, a);
l >>= 1, r >>= 1;
}
}
private:
void push(int k) {
if (laz[k] == MA::unit()) return;
all_apply(2 * k, laz[k]), all_apply(2 * k + 1, laz[k]);
laz[k] = MA::unit();
}
void all_apply(int k, A a) { laz[k] = MA::op(laz[k], a); }
};
#line 5 "main.cpp"
/*
問題文むずすぎる
moniphant,mofunfunは別のものです
予想問題文
・同じ数直線にたくさん居るというよりはそれぞれ別の数直線?
・x += 1
・x -= 1, x に居た angly mofunfun は disappear
・disappear というのは angly が消えるだけで、再び登場して angly になることもできる
・座標 x が angly になる
・angly であるような最小の座標に移動
じゃあできます
クエリ列をもってインデックスを変化させていく
query 4 から query 4 までをまとめる
sum,min,tag
じゃあ全体もまとめられます
prefix, mid, suffix
それぞれにquery 4 -> query 4 を持つ
*/
struct Data3 {
int sum, min, tag;
int eval() { return ::min(sum, tag); }
};
Data3 merge(Data3& L, Data3& R) {
Data3 M;
M.sum = L.sum + R.sum;
M.min = min(L.min, L.sum + R.min);
M.tag = infty<int>;
if (L.tag != infty<int>) {
if (L.tag <= L.sum + R.min) { chmin(M.tag, L.tag); }
}
if (R.tag != infty<int>) { chmin(M.tag, L.sum + R.tag); }
return M;
}
struct Data {
bool single;
Data3 prefix, suffix;
int mid;
bool operator==(const Data& other) const { return false; }
int get_ans() {
if (single) return prefix.sum;
return prefix.eval() + mid + suffix.sum;
}
};
struct Mono {
using value_type = Data;
using X = value_type;
static X op(X L, X R) {
if (L.single && R.single) {
L.prefix = merge(L.prefix, R.prefix);
return L;
}
if (L.single && !R.single) {
R.prefix = merge(L.prefix, R.prefix);
return R;
}
if (!L.single && R.single) {
L.suffix = merge(L.suffix, R.prefix);
return L;
}
int x = L.mid;
x += R.mid;
x += merge(L.suffix, R.prefix).eval();
return Data{false, L.prefix, R.suffix, x};
}
static constexpr X unit() { return {true, Data3{0, 0, infty<int>}, Data3{0, 0, 0}, 0}; }
static constexpr bool commute = 0;
};
Data base[5];
void solve() {
LL(N, Q);
{
Data& x = base[1];
x.single = 1;
x.prefix = {1, 0, infty<int>};
}
{
Data& x = base[2];
x.single = 1;
x.prefix = {-1, -1, infty<int>};
}
{
Data& x = base[3];
x.single = 1;
x.prefix = {0, 0, 0};
}
{
Data& x = base[4];
x.single = 0;
x.prefix = {0, 0, infty<int>};
x.suffix = {0, 0, infty<int>};
x.mid = 0;
}
Dual_SegTree<Mono> seg(N);
auto Q1 = [&]() -> void {
LL(L, R);
--L;
seg.apply(L, R, base[1]);
};
auto Q2 = [&]() -> void {
LL(L, R);
--L;
seg.apply(L, R, base[2]);
};
auto Q3 = [&]() -> void {
LL(L, R);
--L;
seg.apply(L, R, base[3]);
};
auto Q4 = [&]() -> void {
LL(L, R);
--L;
seg.apply(L, R, base[4]);
};
auto Q5 = [&]() -> void {
LL(L, R);
--L;
int ans = 500000 + seg.get(L).get_ans();
print(ans);
};
FOR(Q) {
INT(t);
if (t == 1) Q1();
if (t == 2) Q2();
if (t == 3) Q3();
if (t == 4) Q4();
if (t == 5) Q5();
// SHOW(t, seg.get(0).get_ans());
// auto x = seg.get(0).prefix;
// SHOW(x.sum, x.min, x.tag);
}
}
signed main() { solve(); }
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3676kb
input:
1 9 1 1 1 1 1 1 1 1 1 3 1 1 2 1 1 1 1 1 1 1 1 4 1 1 5 1 1
output:
500004
result:
ok 1 number(s): "500004"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3748kb
input:
3 7 2 1 3 3 1 3 1 1 3 1 1 3 5 1 1 4 1 3 5 1 1
output:
500001 499999
result:
ok 2 number(s): "500001 499999"
Test #3:
score: 0
Accepted
time: 513ms
memory: 36388kb
input:
500000 500000 2 132991 371170 5 15281 15281 1 278642 397098 2 152103 176573 2 13797 47775 3 139320 370045 3 79054 432340 3 82556 212775 4 270171 469418 5 148000 148000 3 371255 401414 5 71051 71051 2 358945 473071 2 231663 265401 2 20243 58131 1 247710 313373 5 154549 154549 1 17317 233265 5 37602 3...
output:
500000 499999 500000 499998 499999 500000 500000 499997 500000 499997 499997 499999 499998 500000 499997 500000 499999 500001 499999 499999 499997 499997 499996 499998 500000 500001 500001 499996 499998 499999 499996 499999 500001 500000 500000 500002 500002 499997 500001 499997 499995 499999 500004...
result:
ok 99850 numbers
Test #4:
score: 0
Accepted
time: 523ms
memory: 36244kb
input:
500000 500000 1 82261 414004 4 128531 435780 1 182288 357334 1 384377 425512 5 400207 400207 5 12158 12158 4 287819 439382 4 273623 387675 4 141825 285941 3 69773 134995 4 29380 264126 1 294648 422834 5 39538 39538 3 142540 417717 5 234932 234932 3 203802 448531 4 70427 154922 5 350852 350852 1 1512...
output:
500002 500000 500000 500002 500003 500000 499998 499999 500000 500001 499998 499996 500001 499997 499995 499998 499995 499996 499994 499998 499999 500000 499996 499988 499995 499999 499992 500001 499995 499991 499991 499995 500002 499987 499992 500000 500001 499988 499987 499989 499989 499992 500001...
result:
ok 99856 numbers
Test #5:
score: 0
Accepted
time: 524ms
memory: 36204kb
input:
500000 500000 5 72042 72042 3 413594 434238 2 361496 397187 1 269630 487427 3 242649 269514 1 54440 379912 4 186602 218641 3 276439 423353 3 135538 386886 1 18494 105835 2 280844 281961 4 295419 431095 2 371614 462384 3 287902 310870 4 16615 433795 4 190316 318613 3 212017 398069 5 9605 9605 4 91266...
output:
500000 500000 500002 500002 500000 500003 500002 500000 500000 500001 500002 500000 500002 500004 499997 500001 500003 500002 500000 500001 500001 500004 500000 500002 500001 500001 499999 500004 500001 500001 500001 500006 499998 499997 500006 500005 500005 500001 499995 499999 500006 500000 500001...
result:
ok 100105 numbers
Test #6:
score: 0
Accepted
time: 531ms
memory: 36256kb
input:
500000 500000 2 5190 91049 4 128857 445467 3 223530 277888 2 40982 105310 1 407309 471677 2 28575 133349 1 32121 490377 5 253892 253892 3 302998 419525 2 113017 482504 1 69934 143033 4 48272 361234 5 2861 2861 1 73851 222387 4 353590 463398 5 246538 246538 4 172175 241916 3 123903 463282 5 265403 26...
output:
500001 500000 500000 500000 500000 499999 499999 500000 500000 499996 499996 499999 499998 500000 499998 499999 500000 499998 499999 500002 499999 499999 500001 499999 500002 500000 499997 499994 500000 499994 499993 500002 499992 499988 499988 500001 499996 500002 500002 499995 499990 499992 500002...
result:
ok 100018 numbers
Test #7:
score: 0
Accepted
time: 527ms
memory: 36088kb
input:
500000 500000 1 92884 302553 3 55209 426930 4 274477 421174 1 116041 243779 2 184334 487953 3 377378 416732 2 78059 458714 1 117519 134853 5 30966 30966 4 6896 243400 4 133516 387611 5 274315 274315 4 1255 321875 1 223029 472140 1 134662 463400 1 271092 375546 4 154845 453545 2 283001 468220 3 20643...
output:
500000 499999 500000 500000 500002 500003 500000 500003 500000 500000 499996 500001 499994 499999 499996 499994 499995 499995 499999 499998 500001 499992 499990 499990 499990 499990 499998 499997 499996 499991 499991 499994 499998 499997 499990 499990 499997 499996 499990 499995 499991 499991 499993...
result:
ok 100214 numbers
Test #8:
score: 0
Accepted
time: 518ms
memory: 36340kb
input:
500000 500000 5 417190 417190 5 343155 343155 3 238196 397249 2 190674 437636 3 292166 453486 3 33110 230933 1 203367 265293 5 224931 224931 4 147852 361144 5 267505 267505 3 135127 384589 3 223472 441256 1 149972 160456 1 207060 334058 1 461029 486155 1 180058 382221 3 122724 138722 2 438731 448303...
output:
500000 500000 500000 499999 499999 500000 499999 499999 500000 499997 499997 499998 499996 499998 499997 500000 500000 500000 500000 499999 500003 500001 500000 500000 499998 499998 499998 499996 499998 499995 500003 499998 499999 500005 499998 500001 499997 500000 500000 500006 500000 500003 500004...
result:
ok 99758 numbers
Test #9:
score: 0
Accepted
time: 515ms
memory: 36208kb
input:
500000 500000 5 463523 463523 5 113643 113643 2 381674 410504 1 22966 114703 5 16811 16811 5 273752 273752 2 272169 420247 2 71593 112069 4 171364 379367 3 56291 187294 1 151339 169092 1 191063 393959 4 96567 345115 5 47859 47859 2 447869 485334 1 148875 281623 3 57575 88435 3 7881 207243 5 84967 84...
output:
500000 500000 500000 500000 500001 500000 500001 500002 500000 500003 500001 500000 499999 499999 499999 499999 500000 500001 500000 499999 499998 500001 500000 499997 500000 499997 499996 500002 499997 499997 499997 499999 499997 499998 499998 500001 500000 499997 499995 499996 499999 499998 499998...
result:
ok 99487 numbers
Test #10:
score: 0
Accepted
time: 532ms
memory: 36228kb
input:
500000 500000 4 315829 368195 3 414015 486000 2 148601 309648 3 323477 435058 2 7730 312072 1 91960 499853 5 243073 243073 4 308460 375604 1 40395 150056 5 116054 116054 3 142106 406335 3 166868 380856 4 101797 181638 1 31743 237233 4 190434 259395 1 91100 332530 3 156661 282976 5 98708 98708 1 1997...
output:
499999 500001 500003 499999 500003 500001 500001 500001 499999 500001 499999 500002 499999 500007 500002 500004 499998 499999 500006 499999 499999 499997 499997 500001 499997 499994 500002 499997 499998 500002 499996 499999 499998 500000 500001 500002 499997 500000 500003 500005 500003 500002 500003...
result:
ok 99671 numbers
Test #11:
score: 0
Accepted
time: 514ms
memory: 36060kb
input:
500000 500000 2 338729 402306 2 260139 296789 2 348628 378006 4 151959 263061 3 274633 499362 3 132916 136988 3 19132 495822 3 47431 471607 2 144550 199941 3 52929 115332 1 17302 132635 2 195980 480390 3 173564 289435 1 219579 286571 2 319857 387911 1 444872 466260 3 117298 214290 2 245260 322033 1 ...
output:
500003 500000 499999 500001 500003 499999 500005 500000 499999 499999 500005 500000 499996 500001 500001 499998 499999 499996 499998 499998 499993 500002 499993 499997 499998 499998 499998 499992 499993 499997 499997 499993 499994 499995 499988 499996 499989 499992 499994 499997 500001 499999 500000...
result:
ok 99951 numbers
Test #12:
score: 0
Accepted
time: 506ms
memory: 36240kb
input:
500000 500000 4 43080 426035 2 446418 498842 2 261117 446761 3 174657 283077 3 475449 484835 5 346061 346061 2 312006 425604 4 154903 350468 1 53920 374405 2 289214 481287 5 181600 181600 3 72854 222601 5 289827 289827 5 18524 18524 4 304780 417551 1 307684 430391 2 238310 271890 1 196257 364172 5 4...
output:
499999 500001 499999 500000 500000 500002 500003 500001 500003 500003 500005 500005 500002 500006 500004 500003 500000 500004 500002 500007 500000 499999 500000 500002 500001 499998 499998 499998 499999 500001 500002 500000 500000 500003 499998 499999 500003 500001 500001 499999 499997 499999 500000...
result:
ok 100352 numbers