QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#760495 | #9556. The Hanged Man | maspy | AC ✓ | 120ms | 93624kb | C++23 | 28.5kb | 2024-11-18 17:11:00 | 2024-11-18 17:11:01 |
Judging History
answer
#line 1 "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 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 "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 "library/graph/tree.hpp"
#line 2 "library/graph/base.hpp"
template <typename T>
struct Edge {
int frm, to;
T cost;
int id;
};
template <typename T = int, bool directed = false>
struct Graph {
static constexpr bool is_directed = directed;
int N, M;
using cost_type = T;
using edge_type = Edge<T>;
vector<edge_type> edges;
vector<int> indptr;
vector<edge_type> csr_edges;
vc<int> vc_deg, vc_indeg, vc_outdeg;
bool prepared;
class OutgoingEdges {
public:
OutgoingEdges(const Graph* G, int l, int r) : G(G), l(l), r(r) {}
const edge_type* begin() const {
if (l == r) { return 0; }
return &G->csr_edges[l];
}
const edge_type* end() const {
if (l == r) { return 0; }
return &G->csr_edges[r];
}
private:
const Graph* G;
int l, r;
};
bool is_prepared() { return prepared; }
Graph() : N(0), M(0), prepared(0) {}
Graph(int N) : N(N), M(0), prepared(0) {}
void build(int n) {
N = n, M = 0;
prepared = 0;
edges.clear();
indptr.clear();
csr_edges.clear();
vc_deg.clear();
vc_indeg.clear();
vc_outdeg.clear();
}
void add(int frm, int to, T cost = 1, int i = -1) {
assert(!prepared);
assert(0 <= frm && 0 <= to && to < N);
if (i == -1) i = M;
auto e = edge_type({frm, to, cost, i});
edges.eb(e);
++M;
}
#ifdef FASTIO
// wt, off
void read_tree(bool wt = false, int off = 1) { read_graph(N - 1, wt, off); }
void read_graph(int M, bool wt = false, int off = 1) {
for (int m = 0; m < M; ++m) {
INT(a, b);
a -= off, b -= off;
if (!wt) {
add(a, b);
} else {
T c;
read(c);
add(a, b, c);
}
}
build();
}
#endif
void build() {
assert(!prepared);
prepared = true;
indptr.assign(N + 1, 0);
for (auto&& e: edges) {
indptr[e.frm + 1]++;
if (!directed) indptr[e.to + 1]++;
}
for (int v = 0; v < N; ++v) { indptr[v + 1] += indptr[v]; }
auto counter = indptr;
csr_edges.resize(indptr.back() + 1);
for (auto&& e: edges) {
csr_edges[counter[e.frm]++] = e;
if (!directed)
csr_edges[counter[e.to]++] = edge_type({e.to, e.frm, e.cost, e.id});
}
}
OutgoingEdges operator[](int v) const {
assert(prepared);
return {this, indptr[v], indptr[v + 1]};
}
vc<int> deg_array() {
if (vc_deg.empty()) calc_deg();
return vc_deg;
}
pair<vc<int>, vc<int>> deg_array_inout() {
if (vc_indeg.empty()) calc_deg_inout();
return {vc_indeg, vc_outdeg};
}
int deg(int v) {
if (vc_deg.empty()) calc_deg();
return vc_deg[v];
}
int in_deg(int v) {
if (vc_indeg.empty()) calc_deg_inout();
return vc_indeg[v];
}
int out_deg(int v) {
if (vc_outdeg.empty()) calc_deg_inout();
return vc_outdeg[v];
}
#ifdef FASTIO
void debug() {
print("Graph");
if (!prepared) {
print("frm to cost id");
for (auto&& e: edges) print(e.frm, e.to, e.cost, e.id);
} else {
print("indptr", indptr);
print("frm to cost id");
FOR(v, N) for (auto&& e: (*this)[v]) print(e.frm, e.to, e.cost, e.id);
}
}
#endif
vc<int> new_idx;
vc<bool> used_e;
// G における頂点 V[i] が、新しいグラフで i になるようにする
// {G, es}
// sum(deg(v)) の計算量になっていて、
// 新しいグラフの n+m より大きい可能性があるので注意
Graph<T, directed> rearrange(vc<int> V, bool keep_eid = 0) {
if (len(new_idx) != N) new_idx.assign(N, -1);
int n = len(V);
FOR(i, n) new_idx[V[i]] = i;
Graph<T, directed> G(n);
vc<int> history;
FOR(i, n) {
for (auto&& e: (*this)[V[i]]) {
if (len(used_e) <= e.id) used_e.resize(e.id + 1);
if (used_e[e.id]) continue;
int a = e.frm, b = e.to;
if (new_idx[a] != -1 && new_idx[b] != -1) {
history.eb(e.id);
used_e[e.id] = 1;
int eid = (keep_eid ? e.id : -1);
G.add(new_idx[a], new_idx[b], e.cost, eid);
}
}
}
FOR(i, n) new_idx[V[i]] = -1;
for (auto&& eid: history) used_e[eid] = 0;
G.build();
return G;
}
Graph<T, true> to_directed_tree(int root = -1) {
if (root == -1) root = 0;
assert(!is_directed && prepared && M == N - 1);
Graph<T, true> G1(N);
vc<int> par(N, -1);
auto dfs = [&](auto& dfs, int v) -> void {
for (auto& e: (*this)[v]) {
if (e.to == par[v]) continue;
par[e.to] = v, dfs(dfs, e.to);
}
};
dfs(dfs, root);
for (auto& e: edges) {
int a = e.frm, b = e.to;
if (par[a] == b) swap(a, b);
assert(par[b] == a);
G1.add(a, b, e.cost);
}
G1.build();
return G1;
}
private:
void calc_deg() {
assert(vc_deg.empty());
vc_deg.resize(N);
for (auto&& e: edges) vc_deg[e.frm]++, vc_deg[e.to]++;
}
void calc_deg_inout() {
assert(vc_indeg.empty());
vc_indeg.resize(N);
vc_outdeg.resize(N);
for (auto&& e: edges) { vc_indeg[e.to]++, vc_outdeg[e.frm]++; }
}
};
#line 4 "library/graph/tree.hpp"
// HLD euler tour をとっていろいろ。
template <typename GT>
struct Tree {
using Graph_type = GT;
GT &G;
using WT = typename GT::cost_type;
int N;
vector<int> LID, RID, head, V, parent, VtoE;
vc<int> depth;
vc<WT> depth_weighted;
Tree(GT &G, int r = 0, bool hld = 1) : G(G) { build(r, hld); }
void build(int r = 0, bool hld = 1) {
if (r == -1) return; // build を遅延したいとき
N = G.N;
LID.assign(N, -1), RID.assign(N, -1), head.assign(N, r);
V.assign(N, -1), parent.assign(N, -1), VtoE.assign(N, -1);
depth.assign(N, -1), depth_weighted.assign(N, 0);
assert(G.is_prepared());
int t1 = 0;
dfs_sz(r, -1, hld);
dfs_hld(r, t1);
}
void dfs_sz(int v, int p, bool hld) {
auto &sz = RID;
parent[v] = p;
depth[v] = (p == -1 ? 0 : depth[p] + 1);
sz[v] = 1;
int l = G.indptr[v], r = G.indptr[v + 1];
auto &csr = G.csr_edges;
// 使う辺があれば先頭にする
for (int i = r - 2; i >= l; --i) {
if (hld && depth[csr[i + 1].to] == -1) swap(csr[i], csr[i + 1]);
}
int hld_sz = 0;
for (int i = l; i < r; ++i) {
auto e = csr[i];
if (depth[e.to] != -1) continue;
depth_weighted[e.to] = depth_weighted[v] + e.cost;
VtoE[e.to] = e.id;
dfs_sz(e.to, v, hld);
sz[v] += sz[e.to];
if (hld && chmax(hld_sz, sz[e.to]) && l < i) { swap(csr[l], csr[i]); }
}
}
void dfs_hld(int v, int ×) {
LID[v] = times++;
RID[v] += LID[v];
V[LID[v]] = v;
bool heavy = true;
for (auto &&e: G[v]) {
if (depth[e.to] <= depth[v]) continue;
head[e.to] = (heavy ? head[v] : e.to);
heavy = false;
dfs_hld(e.to, times);
}
}
vc<int> heavy_path_at(int v) {
vc<int> P = {v};
while (1) {
int a = P.back();
for (auto &&e: G[a]) {
if (e.to != parent[a] && head[e.to] == v) {
P.eb(e.to);
break;
}
}
if (P.back() == a) break;
}
return P;
}
int heavy_child(int v) {
int k = LID[v] + 1;
if (k == N) return -1;
int w = V[k];
return (parent[w] == v ? w : -1);
}
int e_to_v(int eid) {
auto e = G.edges[eid];
return (parent[e.frm] == e.to ? e.frm : e.to);
}
int v_to_e(int v) { return VtoE[v]; }
int get_eid(int u, int v) {
if (parent[u] != v) swap(u, v);
assert(parent[u] == v);
return VtoE[u];
}
int ELID(int v) { return 2 * LID[v] - depth[v]; }
int ERID(int v) { return 2 * RID[v] - depth[v] - 1; }
// 目標地点へ進む個数が k
int LA(int v, int k) {
assert(k <= depth[v]);
while (1) {
int u = head[v];
if (LID[v] - k >= LID[u]) return V[LID[v] - k];
k -= LID[v] - LID[u] + 1;
v = parent[u];
}
}
int la(int u, int v) { return LA(u, v); }
int LCA(int u, int v) {
for (;; v = parent[head[v]]) {
if (LID[u] > LID[v]) swap(u, v);
if (head[u] == head[v]) return u;
}
}
int meet(int a, int b, int c) { return LCA(a, b) ^ LCA(a, c) ^ LCA(b, c); }
int lca(int u, int v) { return LCA(u, v); }
int subtree_size(int v, int root = -1) {
if (root == -1) return RID[v] - LID[v];
if (v == root) return N;
int x = jump(v, root, 1);
if (in_subtree(v, x)) return RID[v] - LID[v];
return N - RID[x] + LID[x];
}
int dist(int a, int b) {
int c = LCA(a, b);
return depth[a] + depth[b] - 2 * depth[c];
}
WT dist_weighted(int a, int b) {
int c = LCA(a, b);
return depth_weighted[a] + depth_weighted[b] - WT(2) * depth_weighted[c];
}
// a is in b
bool in_subtree(int a, int b) { return LID[b] <= LID[a] && LID[a] < RID[b]; }
int jump(int a, int b, ll k) {
if (k == 1) {
if (a == b) return -1;
return (in_subtree(b, a) ? LA(b, depth[b] - depth[a] - 1) : parent[a]);
}
int c = LCA(a, b);
int d_ac = depth[a] - depth[c];
int d_bc = depth[b] - depth[c];
if (k > d_ac + d_bc) return -1;
if (k <= d_ac) return LA(a, k);
return LA(b, d_ac + d_bc - k);
}
vc<int> collect_child(int v) {
vc<int> res;
for (auto &&e: G[v])
if (e.to != parent[v]) res.eb(e.to);
return res;
}
vc<int> collect_light(int v) {
vc<int> res;
bool skip = true;
for (auto &&e: G[v])
if (e.to != parent[v]) {
if (!skip) res.eb(e.to);
skip = false;
}
return res;
}
vc<pair<int, int>> get_path_decomposition(int u, int v, bool edge) {
// [始点, 終点] の"閉"区間列。
vc<pair<int, int>> up, down;
while (1) {
if (head[u] == head[v]) break;
if (LID[u] < LID[v]) {
down.eb(LID[head[v]], LID[v]);
v = parent[head[v]];
} else {
up.eb(LID[u], LID[head[u]]);
u = parent[head[u]];
}
}
if (LID[u] < LID[v]) down.eb(LID[u] + edge, LID[v]);
elif (LID[v] + edge <= LID[u]) up.eb(LID[u], LID[v] + edge);
reverse(all(down));
up.insert(up.end(), all(down));
return up;
}
// 辺の列の情報 (frm,to,str)
// str = "heavy_up", "heavy_down", "light_up", "light_down"
vc<tuple<int, int, string>> get_path_decomposition_detail(int u, int v) {
vc<tuple<int, int, string>> up, down;
while (1) {
if (head[u] == head[v]) break;
if (LID[u] < LID[v]) {
if (v != head[v]) down.eb(head[v], v, "heavy_down"), v = head[v];
down.eb(parent[v], v, "light_down"), v = parent[v];
} else {
if (u != head[u]) up.eb(u, head[u], "heavy_up"), u = head[u];
up.eb(u, parent[u], "light_up"), u = parent[u];
}
}
if (LID[u] < LID[v]) down.eb(u, v, "heavy_down");
elif (LID[v] < LID[u]) up.eb(u, v, "heavy_up");
reverse(all(down));
concat(up, down);
return up;
}
vc<int> restore_path(int u, int v) {
vc<int> P;
for (auto &&[a, b]: get_path_decomposition(u, v, 0)) {
if (a <= b) {
FOR(i, a, b + 1) P.eb(V[i]);
} else {
FOR_R(i, b, a + 1) P.eb(V[i]);
}
}
return P;
}
// path [a,b] と [c,d] の交わり. 空ならば {-1,-1}.
// https://codeforces.com/problemset/problem/500/G
pair<int, int> path_intersection(int a, int b, int c, int d) {
int ab = lca(a, b), ac = lca(a, c), ad = lca(a, d);
int bc = lca(b, c), bd = lca(b, d), cd = lca(c, d);
int x = ab ^ ac ^ bc, y = ab ^ ad ^ bd; // meet(a,b,c), meet(a,b,d)
if (x != y) return {x, y};
int z = ac ^ ad ^ cd;
if (x != z) x = -1;
return {x, x};
}
// uv path 上で check(v) を満たす最後の v
// なければ (つまり check(v) が ng )-1
template <class F>
int max_path(F check, int u, int v) {
if (!check(u)) return -1;
auto pd = get_path_decomposition(u, v, false);
for (auto [a, b]: pd) {
if (!check(V[a])) return u;
if (check(V[b])) {
u = V[b];
continue;
}
int c = binary_search([&](int c) -> bool { return check(V[c]); }, a, b, 0);
return V[c];
}
return u;
}
};
#line 2 "library/ds/unionfind/unionfind.hpp"
struct UnionFind {
int n, n_comp;
vc<int> dat; // par or (-size)
UnionFind(int n = 0) { build(n); }
void build(int m) {
n = m, n_comp = m;
dat.assign(n, -1);
}
void reset() { build(n); }
int operator[](int x) {
while (dat[x] >= 0) {
int pp = dat[dat[x]];
if (pp < 0) { return dat[x]; }
x = dat[x] = pp;
}
return x;
}
ll size(int x) {
x = (*this)[x];
return -dat[x];
}
bool merge(int x, int y) {
x = (*this)[x], y = (*this)[y];
if (x == y) return false;
if (-dat[x] < -dat[y]) swap(x, y);
dat[x] += dat[y], dat[y] = x, n_comp--;
return true;
}
vc<int> get_all() {
vc<int> A(n);
FOR(i, n) A[i] = (*this)[i];
return A;
}
};
#line 6 "main.cpp"
void solve() {
LL(N);
Graph<int, 0> G(N);
G.read_tree();
// 葉を根にする
int r = 0;
FOR(v, N) if (G.deg(v) == 1) r = v;
vc<int> dp(N);
Tree<decltype(G)> tree(G, r);
FOR_R(i, N) {
int v = tree.V[i];
if (G.deg(v) % 2 == 0) {
dp[v] = 1;
continue;
}
auto ch = tree.collect_child(v);
for (auto& w: ch)
if (dp[w]) dp[v] = 1;
}
int c = tree.V[1];
if (!dp[c]) return print(-1);
vvc<int> ANS;
auto dfs = [&](auto& dfs, int v, vc<int>& path, bool one) -> void {
path.eb(v);
auto ch = tree.collect_child(v);
if (ch.empty()) { return; }
if (len(ch) % 2 == 1) {
int c = POP(ch);
dfs(dfs, c, path, false);
while (len(ch)) {
int a = POP(ch);
vc<int> S;
S.eb(v);
dfs(dfs, a, S, false);
int b = POP(ch);
reverse(all(S));
dfs(dfs, b, S, false);
ANS.eb(S);
}
return;
}
if (!one) {
while (len(ch)) {
int a = POP(ch);
vc<int> S;
S.eb(v);
dfs(dfs, a, S, false);
int b = POP(ch);
reverse(all(S));
dfs(dfs, b, S, false);
ANS.eb(S);
}
return;
}
int w = -1;
for (auto& c: ch)
if (dp[c]) w = c;
assert(w != -1);
FOR(i, len(ch) - 1) if (ch[i] == w) swap(ch[i], ch.back());
{
vc<int> S = {v};
dfs(dfs, POP(ch), S, true);
ANS.eb(S);
}
int c = POP(ch);
dfs(dfs, c, path, false);
while (len(ch)) {
int a = POP(ch);
vc<int> S;
S.eb(v);
dfs(dfs, a, S, false);
int b = POP(ch);
reverse(all(S));
dfs(dfs, b, S, false);
ANS.eb(S);
}
};
vc<int> path = {r};
dfs(dfs, c, path, true);
ANS.eb(path);
vc<int> CNT(N - 1);
for (auto& S: ANS) {
assert(len(S) >= 3);
FOR(k, len(S) - 1) {
int a = S[k], b = S[k + 1];
int idx = tree.get_eid(a, b);
CNT[idx]++;
}
}
FOR(e, N - 1) assert(CNT[e] == 1);
print(len(ANS));
for (auto& S: ANS) print(1 + S[0], 1 + S.back());
}
signed main() {
INT(T);
FOR(T) solve();
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3868kb
input:
3 4 1 2 2 3 2 4 7 1 2 1 3 1 4 4 5 4 6 4 7 6 1 2 2 3 2 4 1 5 5 6
output:
-1 3 2 3 6 1 7 5 2 3 4 6 2
result:
ok Good Job! (3 test cases)
Test #2:
score: 0
Accepted
time: 0ms
memory: 3908kb
input:
3 6 1 2 1 3 1 4 4 5 4 6 2 1 2 2 2 1
output:
-1 -1 -1
result:
ok Good Job! (3 test cases)
Test #3:
score: 0
Accepted
time: 56ms
memory: 3944kb
input:
100000 3 1 3 2 1 3 2 3 1 2 3 2 3 1 3 3 2 1 1 3 3 1 2 2 3 3 1 3 2 3 3 2 1 1 3 3 2 3 1 2 3 2 3 1 3 3 2 1 1 3 3 2 3 1 2 3 1 3 2 3 3 1 3 2 1 3 2 3 1 2 3 2 3 1 3 3 1 3 2 1 3 1 2 2 3 3 1 3 2 3 3 2 1 1 3 3 1 2 2 3 3 1 3 2 3 3 1 3 2 1 3 2 3 1 2 3 1 3 2 3 3 1 3 2 1 3 2 3 1 2 3 1 3 2 3 3 2 1 1 3 3 2 3 1 2 3 2...
output:
1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 1 2 1 1 3 2 1 3 1 ...
result:
ok Good Job! (100000 test cases)
Test #4:
score: 0
Accepted
time: 46ms
memory: 3908kb
input:
75000 4 3 1 2 1 1 4 4 3 1 2 4 1 2 4 2 1 1 3 3 4 4 1 4 2 1 3 4 4 2 1 3 2 1 4 4 3 2 2 4 1 2 4 2 3 3 4 1 2 4 3 4 2 4 1 2 4 3 1 1 4 2 3 4 3 2 1 3 2 4 4 2 3 1 3 3 4 4 1 3 3 4 2 4 4 3 1 1 4 2 4 4 3 2 2 4 1 4 4 2 3 3 4 1 4 4 3 4 2 4 1 4 4 1 4 2 1 3 1 4 2 4 3 1 1 2 4 2 1 3 4 1 3 4 2 1 1 4 3 4 4 1 4 2 1 3 2 ...
output:
-1 1 4 3 1 4 2 1 3 2 1 4 3 -1 1 4 1 1 3 1 1 4 2 1 4 1 -1 1 2 1 1 3 2 1 3 1 1 2 1 -1 -1 1 4 3 1 4 2 1 3 2 1 4 3 -1 1 4 1 1 3 1 1 4 2 1 4 1 -1 1 2 1 1 3 2 1 3 1 1 2 1 -1 -1 1 4 3 1 4 2 1 3 2 1 4 3 -1 1 4 1 1 3 1 1 4 2 1 4 1 -1 1 2 1 1 3 2 1 3 1 1 2 1 -1 -1 1 4 3 1 4 2 1 3 2 1 4 3 -1 1 4 1 1 3 1 1 4 2 ...
result:
ok Good Job! (75000 test cases)
Test #5:
score: 0
Accepted
time: 49ms
memory: 4172kb
input:
60000 5 2 1 3 1 4 1 1 5 5 1 2 4 1 2 5 3 1 5 1 3 3 5 4 1 2 1 5 2 1 4 5 1 4 3 1 5 3 1 1 5 2 1 4 5 5 3 1 4 2 1 5 2 1 5 1 2 3 1 2 5 4 2 5 4 1 1 2 3 5 2 3 5 3 1 2 4 4 5 1 2 5 4 5 3 1 2 5 1 2 5 1 5 2 1 3 1 4 3 5 1 3 4 1 2 5 3 2 5 4 3 2 1 1 3 3 5 5 3 4 1 3 4 5 2 1 5 2 1 1 3 4 5 3 5 5 3 4 4 1 1 5 2 1 5 3 1 ...
output:
2 2 4 5 3 2 4 3 5 1 2 4 2 5 1 2 2 3 5 1 2 3 2 4 1 2 1 4 5 3 2 2 3 5 4 1 5 4 1 5 3 1 4 3 2 1 4 5 2 1 5 4 2 3 2 5 4 1 5 2 1 4 2 2 1 3 5 2 1 5 3 1 5 2 2 4 2 5 3 1 3 2 2 1 3 4 2 1 4 3 1 4 2 1 3 2 2 5 2 4 3 2 1 3 5 4 2 2 4 5 3 1 5 4 1 5 3 1 4 3 2 3 4 5 2 2 4 3 5 1 2 1 4 5 2 2 1 3 5 2 2 1 3 4 2 1 5 4 2 2 ...
result:
ok Good Job! (60000 test cases)
Test #6:
score: 0
Accepted
time: 45ms
memory: 3868kb
input:
50000 6 1 6 5 1 4 1 2 1 3 1 6 5 1 3 1 1 2 2 6 4 1 6 4 1 5 1 1 3 2 1 3 6 6 4 6 2 1 5 1 3 1 1 4 6 5 6 1 5 4 1 3 1 2 1 6 4 1 5 6 2 1 1 6 3 1 6 1 6 3 1 2 1 5 2 4 1 6 3 1 5 2 1 2 2 6 4 1 6 4 1 2 3 5 1 1 2 3 6 6 4 6 1 2 3 1 2 4 5 1 6 1 2 5 6 2 5 3 1 4 1 6 1 2 2 6 4 1 3 1 5 6 6 5 3 3 1 1 6 2 1 4 1 6 5 1 3 ...
output:
-1 2 5 4 6 3 2 4 2 6 5 2 2 3 6 5 2 4 2 6 3 2 4 3 5 2 2 3 5 6 4 -1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 4 3 5 1 2 4 5 6 2 2 5 4 6 1 -1 2 2 5 6 1 2 2 4 6 1 2 4 2 5 1 2 3 5 6 2 2 3 5 6 1 2 2 5 6 1 -1 2 2 3 6 1 2 2 3 5 1 2 2 4 6 3 2 3 4 6 1 2 4 2 6 1 2 2 3 6 1 -1 2 3 2 4 1 2 2 4 5 3 2 4 3 5 1 2 2 4 5 1 2 3 2...
result:
ok Good Job! (50000 test cases)
Test #7:
score: 0
Accepted
time: 45ms
memory: 3876kb
input:
42857 7 3 1 2 1 5 1 6 1 4 1 1 7 7 4 1 1 2 6 1 3 1 2 7 5 1 7 3 7 2 1 1 3 4 1 6 1 5 1 7 4 7 1 4 6 1 5 1 2 1 3 1 7 4 1 1 5 6 1 3 1 5 7 2 1 7 6 7 5 1 2 1 4 1 1 6 3 1 7 6 7 2 1 1 7 3 1 5 1 4 1 7 4 1 5 1 6 2 3 1 2 1 1 7 7 1 2 4 1 6 2 3 1 2 7 5 1 7 6 1 2 3 4 1 5 1 1 2 3 7 7 6 1 4 7 3 1 1 2 5 1 2 4 7 1 2 3 ...
output:
3 5 2 3 4 7 6 3 3 6 4 5 7 1 3 6 4 2 5 7 1 3 2 5 6 3 7 1 3 3 6 4 2 7 1 3 4 2 5 3 7 1 3 5 3 2 4 6 1 3 1 6 4 3 7 5 3 4 5 2 3 7 6 2 6 5 7 4 2 6 5 7 3 2 3 4 7 6 2 3 4 7 5 2 4 3 6 5 3 1 6 4 2 7 5 2 6 5 7 4 3 2 5 3 4 7 6 2 2 6 7 5 2 6 4 7 2 2 5 2 7 4 2 5 4 6 2 3 1 6 2 3 7 5 2 3 6 7 5 2 6 5 7 2 3 5 3 4 2 7 ...
result:
ok Good Job! (42857 test cases)
Test #8:
score: 0
Accepted
time: 44ms
memory: 3868kb
input:
37500 8 5 1 1 8 7 1 4 1 6 1 2 1 3 1 8 3 1 2 8 4 1 6 1 1 2 7 1 5 1 8 3 8 4 1 2 1 1 3 6 1 5 1 7 1 8 1 4 5 1 7 1 6 1 4 8 2 1 3 1 8 1 5 5 8 4 1 2 1 3 1 7 1 6 1 8 1 6 3 1 4 1 2 1 5 1 6 8 7 1 8 1 7 6 1 4 1 3 1 5 1 7 8 2 1 8 5 1 4 1 2 1 1 8 6 1 7 8 3 1 8 1 8 4 1 2 1 5 1 7 2 3 1 6 1 8 6 1 5 1 7 2 4 1 2 8 3 ...
output:
-1 3 6 4 3 5 8 7 3 6 2 4 7 8 5 3 6 7 5 3 8 2 3 3 2 4 6 8 7 3 2 4 3 7 8 5 3 3 4 6 2 8 5 3 2 4 5 3 7 6 3 5 6 4 7 8 3 -1 3 7 6 5 4 8 1 3 3 7 5 6 8 1 3 4 3 6 7 8 1 3 5 7 4 3 8 1 3 3 5 4 6 8 1 3 6 5 4 3 7 1 3 6 5 2 7 8 4 3 5 4 6 7 8 1 -1 3 6 2 5 7 8 1 3 6 4 7 2 8 1 3 7 5 4 2 8 1 3 5 6 4 2 8 1 3 4 2 5 6 7...
result:
ok Good Job! (37500 test cases)
Test #9:
score: 0
Accepted
time: 25ms
memory: 3836kb
input:
300 1000 815 567 883 63 783 506 485 779 142 248 218 214 617 238 481 567 20 203 119 212 953 179 44 830 427 156 97 916 763 172 484 512 916 21 417 958 408 257 238 634 891 213 90 208 394 56 758 819 435 26 636 718 880 212 458 662 123 212 239 156 548 314 852 436 722 828 271 429 493 27 910 421 354 143 956 ...
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 Good Job! (300 test cases)
Test #10:
score: 0
Accepted
time: 45ms
memory: 13500kb
input:
3 100000 21854 12448 41900 78683 26279 40303 96957 78925 50096 72644 14704 14585 44195 23551 3290 42026 25017 64658 4593 10713 29129 13530 62892 43675 23793 13329 97502 10091 78766 44620 59301 95815 25781 93162 12231 24059 77637 66545 53889 84545 65596 58277 31337 87701 29049 43837 99301 2408 41562 ...
output:
-1 -1 -1
result:
ok Good Job! (3 test cases)
Test #11:
score: 0
Accepted
time: 54ms
memory: 31308kb
input:
1 300000 264872 86229 63995 164384 180167 260692 169708 168083 149321 50390 177160 60629 178607 170744 176734 60911 231963 17936 49668 90468 205798 261858 7645 12727 240590 1798 8446 139678 32309 208096 226620 119112 204528 63548 110330 250899 219366 144880 258130 23221 203423 40874 45194 78650 1571...
output:
-1
result:
ok Good Job! (1 test case)
Test #12:
score: 0
Accepted
time: 49ms
memory: 3868kb
input:
30000 10 1 6 4 8 7 5 6 10 3 1 8 2 2 9 9 10 5 9 10 3 7 2 6 6 9 1 6 4 10 9 10 5 6 7 2 8 3 10 8 10 6 3 2 1 3 2 1 10 7 4 5 2 9 8 4 9 10 4 1 6 8 2 10 9 10 7 2 5 2 8 7 1 6 3 1 10 6 2 3 6 9 6 7 10 8 2 2 1 5 3 1 4 4 10 10 2 8 3 6 5 7 7 8 1 6 8 10 9 2 4 6 6 10 10 1 5 4 3 6 4 7 1 2 3 5 9 8 2 3 10 9 6 10 2 7 5...
output:
2 4 3 7 9 2 5 4 8 1 2 5 6 7 2 3 4 3 5 1 9 2 3 6 5 8 7 9 2 3 3 4 5 1 9 8 2 3 8 10 7 2 5 2 9 3 3 9 2 4 3 10 5 3 6 4 2 3 7 1 3 1 9 8 5 10 3 2 5 4 6 8 3 2 8 4 5 10 3 3 7 1 5 10 8 4 3 6 5 8 3 9 2 4 7 1 8 5 6 3 9 10 3 5 7 8 3 9 1 3 7 3 4 1 5 2 3 3 4 9 7 10 6 3 6 1 2 10 8 9 2 1 4 7 6 3 2 1 4 8 5 6 3 1 4 8 ...
result:
ok Good Job! (30000 test cases)
Test #13:
score: 0
Accepted
time: 51ms
memory: 4144kb
input:
3000 99 79 72 72 6 1 90 94 89 31 28 59 89 78 85 73 35 57 45 45 99 38 57 11 70 26 14 92 13 35 52 30 18 61 15 29 86 60 22 5 57 17 84 36 84 70 37 10 86 80 91 34 87 65 8 42 88 87 25 88 43 8 47 33 78 62 47 15 73 83 77 24 33 97 38 23 77 20 34 85 32 55 22 63 10 66 30 39 5 28 62 89 15 37 49 16 75 74 66 47 4...
output:
29 60 55 16 22 26 27 76 14 95 1 53 88 56 43 83 23 24 41 82 11 33 69 77 78 85 48 3 93 19 79 65 80 94 59 61 89 17 36 74 84 51 40 81 30 9 52 7 50 8 63 44 47 67 4 58 45 97 57 30 6 91 14 74 87 42 22 57 53 66 39 97 51 60 38 95 30 80 10 81 41 56 15 61 9 77 59 25 13 29 47 88 8 11 34 71 1 26 98 62 40 63 4 93...
result:
ok Good Job! (3000 test cases)
Test #14:
score: 0
Accepted
time: 91ms
memory: 16400kb
input:
3 100000 83890 7467 75295 89651 4062 83955 60269 26734 58357 54437 22200 48174 87338 74094 86583 7977 1136 84701 34461 47665 82355 28324 32412 16170 5270 73823 37181 86410 22445 59139 27816 47294 540 79932 73768 41579 14577 92388 31765 75494 49018 24756 57215 90140 86438 22430 3974 15829 59053 22856...
output:
28400 35625 81036 85026 11405 94848 45673 47792 15524 45412 26186 19116 80125 60021 40504 57102 84667 6477 85620 81861 97938 657 52088 60419 8755 87871 33187 1838 79481 28046 63807 53510 44429 49755 72884 39790 70981 45328 88882 16668 39476 86875 68047 11676 43131 77263 14906 96527 18444 26458 81776...
result:
ok Good Job! (3 test cases)
Test #15:
score: 0
Accepted
time: 100ms
memory: 39424kb
input:
1 300000 30683 45175 202516 82288 209967 151196 160370 148366 36159 83057 277846 18399 58641 259342 220025 290125 299864 69137 276256 59853 163412 98854 211643 219357 45085 203080 17046 259484 175009 201826 220413 253746 280406 235850 107084 114346 6196 164024 149354 242637 8884 201047 102007 121900...
output:
85153 73865 63234 136386 126103 267776 241539 37772 179454 246801 242517 152151 63713 176354 147645 105380 77627 114575 204776 165310 285535 200396 161380 10847 63256 13090 288159 125500 31727 246289 155980 40233 289167 272186 108476 227828 202986 21343 173061 260506 3661 115277 274043 7710 21549 11...
result:
ok Good Job! (1 test case)
Test #16:
score: 0
Accepted
time: 98ms
memory: 93624kb
input:
1 300000 98923 244101 265083 199522 178854 130825 233559 275176 51110 162632 100454 144508 203138 94733 112144 116959 221684 184011 122356 174675 240265 56410 83529 213874 174757 59833 87918 98194 231431 71105 145121 105056 205429 60598 114418 168280 249115 124674 160102 183789 27460 854 72909 12628...
output:
1 253307 250509
result:
ok Good Job! (1 test case)
Test #17:
score: 0
Accepted
time: 102ms
memory: 39712kb
input:
1 300000 51552 258960 174014 1763 298103 122466 80039 102474 90881 123355 37816 182571 209856 199049 68745 246931 231305 147333 256217 77569 277988 49579 174054 154053 74959 60605 281490 278569 131850 7894 138112 208044 207380 67110 1334 204240 117581 152706 90835 142455 54402 68306 264004 244539 99...
output:
85191 233823 163442 274077 120542 160326 171984 215209 208620 277542 40764 150489 217045 9022 267291 272743 115712 71980 206495 88837 253284 64870 203318 154640 15843 64144 225171 146640 12330 98937 233593 294951 199280 110805 262913 191641 187335 45112 290311 179092 248683 36564 241822 194126 16544...
result:
ok Good Job! (1 test case)
Test #18:
score: 0
Accepted
time: 87ms
memory: 16440kb
input:
3 100000 43104 39350 58310 72159 1910 78304 366 33335 3494 5822 948 92660 11882 15212 69203 4346 45739 21275 65867 55409 61694 88089 71479 40349 35887 88786 52148 61962 82180 65178 93823 47701 43116 75915 86963 34539 50583 74229 40562 91601 12139 88394 52559 57679 25481 60170 31207 85832 4201 92027 ...
output:
28431 74533 17703 76252 79280 40718 10905 57194 76415 12029 94314 61637 94998 93447 7151 30807 97813 36499 83990 32623 8216 49827 4348 48788 76399 3253 83977 67127 15526 61000 4099 56943 52304 51636 56356 39317 68190 64918 941 33446 87986 25295 1158 50257 91459 89602 33152 74476 41723 88262 20493 20...
result:
ok Good Job! (3 test cases)
Test #19:
score: 0
Accepted
time: 106ms
memory: 93528kb
input:
1 299999 153306 123584 100430 137396 151712 125355 180598 178628 178522 156317 6811 124889 41530 107031 35237 104587 235884 157908 130785 274651 141969 58315 203297 225663 192833 74643 223470 99863 272704 178999 163551 250862 133718 39962 199271 24737 159107 66084 139074 91207 229404 47856 273704 12...
output:
1 211007 141316
result:
ok Good Job! (1 test case)
Test #20:
score: 0
Accepted
time: 30ms
memory: 3844kb
input:
3000 100 9 37 30 16 87 75 66 20 89 79 78 72 48 5 62 100 61 95 69 93 23 86 18 48 32 24 91 43 54 93 92 63 15 7 6 92 67 35 65 89 8 26 21 98 1 65 40 85 36 41 77 39 56 44 69 70 46 67 80 60 94 96 14 36 34 99 84 62 22 74 23 79 46 19 27 51 11 14 18 70 85 8 73 6 97 40 71 83 41 98 61 87 2 90 45 5 20 44 17 81 ...
output:
1 25 2 1 82 31 1 82 48 1 95 51 1 88 58 1 51 31 1 98 14 1 95 33 1 41 29 1 80 22 1 90 11 1 57 1 1 75 7 1 80 25 1 60 26 1 53 14 1 63 1 1 17 7 1 8 1 1 100 33 1 54 50 1 57 11 1 88 30 1 99 28 1 69 23 1 87 34 1 32 8 1 94 77 1 70 30 1 74 4 1 75 34 1 99 71 1 99 23 1 81 5 1 34 29 1 46 26 1 56 27 1 72 19 1 65 ...
result:
ok Good Job! (3000 test cases)
Test #21:
score: 0
Accepted
time: 120ms
memory: 74796kb
input:
1 299999 123584 153306 137396 100430 114758 125355 180598 13155 156317 178522 124889 6811 41530 27377 104587 35237 157908 235884 130785 44576 141969 129416 225663 203297 120350 74643 20300 99863 295855 178999 198163 250862 133718 148059 24737 199271 66084 159107 91207 139074 229404 89529 273704 1565...
output:
149999 17055 43304 35439 188599 107518 58512 230073 186928 35597 98141 287164 149381 115771 200178 209283 116186 36147 159889 88779 244709 93170 136934 107491 224861 152777 199032 146413 135168 269441 28926 104131 18334 20526 164775 8029 26186 200589 60522 288620 120471 195883 108039 233945 185748 3...
result:
ok Good Job! (1 test case)
Test #22:
score: 0
Accepted
time: 70ms
memory: 11148kb
input:
10 29999 29014 14470 26823 2725 13020 1832 9002 521 22160 26983 2964 2174 20830 22020 19201 4850 19060 10457 23936 2163 22700 29072 28735 4318 15942 8678 10533 9761 8946 29013 12121 555 14303 26560 18146 20485 16984 345 22717 347 21795 27399 20125 489 6200 24303 21419 17994 28274 28769 28326 25399 1...
output:
14999 23907 28453 2920 15770 10326 4578 27593 24984 21879 1186 23588 8661 22099 6245 11850 26588 27395 27247 10476 753 12794 18957 22591 15447 17765 22536 19499 17275 16647 445 27680 25765 16086 16011 13029 28687 22326 2733 8253 1258 8517 18060 19084 14385 3375 1407 10732 19322 26691 12939 2893 1455...
result:
ok Good Job! (10 test cases)
Test #23:
score: 0
Accepted
time: 89ms
memory: 43472kb
input:
1 299999 258553 127891 200368 10642 134395 33327 66807 64283 298570 239432 106569 74919 101275 256095 215172 160205 258907 145255 294970 120844 120747 17359 231598 191111 103394 179995 276483 13575 153143 236649 32255 165538 13973 180565 114480 173795 280161 260850 239991 6207 137809 102438 160694 2...
output:
149999 153893 172067 123357 252262 102309 48585 165236 229292 54641 254362 4408 2720 45799 198706 37830 47919 242515 80774 74086 86001 116153 131214 4478 57250 163896 124803 86193 107183 15309 220731 38479 255942 2427 208708 291564 75869 123774 175911 19041 248670 274127 3615 1180 178660 28601 19153...
result:
ok Good Job! (1 test case)
Test #24:
score: 0
Accepted
time: 71ms
memory: 7872kb
input:
10 29999 21547 280 5396 29060 21129 24483 1948 5302 5994 20221 12679 20525 23088 2218 24614 17646 9854 7760 23220 29541 9824 25475 9144 8680 17400 22930 3583 13702 14210 16949 4145 4827 4927 15200 5195 13939 23998 23812 20779 22916 19383 23442 29184 11705 12676 19405 4120 11612 24747 1107 25087 1775...
output:
14999 27491 25885 4902 1111 26523 24462 4714 12880 23313 21167 7519 5466 17307 11137 15984 9808 15616 11412 4044 22221 28389 6288 626 20542 12338 28104 23662 866 29499 9665 14070 12156 1647 11605 14888 29323 27585 7062 22845 13260 22032 24426 24041 29139 15867 14536 21322 1534 25701 17389 15022 1255...
result:
ok Good Job! (10 test cases)
Test #25:
score: 0
Accepted
time: 50ms
memory: 3908kb
input:
27000 11 3 5 11 3 2 3 7 1 10 8 8 6 9 8 3 1 8 4 1 8 11 3 1 1 2 5 6 11 1 6 9 10 6 4 8 1 5 1 7 5 8 11 1 3 6 11 4 6 10 1 1 8 2 6 7 11 1 9 11 1 6 5 11 3 7 6 8 11 3 9 6 3 8 6 4 1 8 5 9 10 3 2 9 11 8 5 6 8 11 5 8 2 7 11 4 5 8 9 3 10 3 11 8 1 11 7 3 2 3 9 1 8 10 8 1 9 5 3 9 4 1 6 8 11 3 11 8 5 8 1 6 8 11 8 ...
output:
5 9 6 10 4 7 8 5 1 11 2 5 5 4 9 10 1 6 3 7 11 2 5 4 5 11 2 1 7 3 9 10 8 5 5 2 4 9 1 6 7 8 11 10 5 9 2 6 1 4 8 7 5 10 11 5 10 6 4 8 5 1 7 9 11 2 5 6 1 4 2 10 9 5 3 11 7 5 4 5 6 10 8 1 3 2 11 9 5 9 4 1 2 11 8 6 7 10 3 5 6 5 10 9 7 2 3 4 11 1 5 2 1 8 3 6 7 9 10 11 4 5 10 4 5 6 2 1 9 7 11 8 5 2 10 9 3 6...
result:
ok Good Job! (27000 test cases)
Test #26:
score: 0
Accepted
time: 54ms
memory: 3876kb
input:
30000 6 5 3 6 2 4 1 1 3 2 1 4 4 2 1 4 1 3 11 9 1 10 11 11 3 11 9 4 6 3 7 2 11 1 6 1 5 8 9 17 6 15 10 7 8 17 13 11 3 8 15 4 16 3 12 4 15 10 2 6 6 9 5 13 5 14 2 1 10 5 8 15 14 14 5 1 6 12 4 8 14 5 9 13 5 4 9 1 13 7 13 5 3 11 14 5 10 2 13 12 3 6 5 1 8 3 12 2 12 7 5 4 9 4 11 10 6 12 12 5 4 11 17 15 11 1...
output:
2 4 5 6 1 1 3 2 4 5 4 8 1 2 9 10 7 6 8 16 9 1 14 11 7 5 6 10 17 12 5 8 11 3 14 2 6 10 7 12 5 4 2 8 1 7 9 5 10 4 6 7 1 4 3 12 11 14 10 2 8 13 9 5 2 11 5 4 10 3 7 1 12 9 -1 2 3 1 4 5 4 3 8 7 4 9 6 11 2 3 9 5 3 1 10 2 4 11 3 8 2 7 6 13 10 3 3 2 6 1 10 9 1 4 2 2 2 1 3 4 -1 1 3 1 1 3 2 3 3 7 4 1 10 5 4 3...
result:
ok Good Job! (30000 test cases)
Test #27:
score: 0
Accepted
time: 70ms
memory: 33212kb
input:
1 253253 50359 179100 159762 56963 156480 129546 194694 165531 171829 15612 8904 244239 167203 79755 59278 193676 6064 179420 93089 11873 208865 161063 72803 55831 6938 69443 182632 252034 15492 123140 26694 88239 59982 95642 209852 233064 205527 137224 222851 93508 28102 71250 250703 159154 54445 3...
output:
84362 193641 30423 170245 40622 194263 703 94855 87378 91075 127195 91705 248184 121193 77440 120104 41551 73750 201448 158560 65252 61228 70583 4270 102113 10478 37422 201375 149236 140122 26013 149675 85149 244077 198332 175 8011 4563 526 44450 136444 57205 230580 2378 134070 84638 22210 44890 499...
result:
ok Good Job! (1 test case)
Test #28:
score: 0
Accepted
time: 48ms
memory: 4240kb
input:
300 1855 1007 450 4 615 1845 844 426 65 1135 79 1020 1386 935 343 936 16 219 1370 1495 131 1409 13 1087 31 63 804 145 1689 1750 1731 694 623 243 626 418 1383 1396 990 1234 385 867 969 779 337 615 732 657 286 1134 1651 269 582 903 1755 478 1384 1360 1060 144 1082 217 1537 185 61 1634 1813 313 876 879...
output:
612 1282 158 526 121 980 1812 959 1732 1206 832 423 692 683 118 1468 1274 1166 514 383 1290 700 9 1378 1513 1614 1605 727 382 1814 393 1017 1720 1647 859 1764 1202 188 920 1498 1120 1021 508 1753 295 724 1598 992 177 864 1342 1030 81 160 1159 88 644 56 516 652 97 591 15 1016 899 1349 106 569 993 438...
result:
ok Good Job! (300 test cases)
Test #29:
score: 0
Accepted
time: 70ms
memory: 36384kb
input:
1 297722 2542 280838 47066 211579 45334 161254 161254 3387 161254 81700 286925 161254 188708 161254 163323 239454 177641 142518 161254 141588 161254 289112 161254 132883 161254 264103 161254 7898 131553 35341 274424 85972 161254 111454 161254 245526 195088 87188 83391 252892 74347 144981 248942 2949...
output:
49500 214202 260126 223340 245419 17459 20355 127412 66384 191933 28747 5838 19351 264671 169492 229938 226736 287282 97373 91960 7201 3176 242260 134538 267756 45636 170102 63590 253220 109025 293479 9845 243996 63335 130864 80921 29739 226011 115665 184507 269056 131820 255081 3449 113401 48359 14...
result:
ok Good Job! (1 test case)
Test #30:
score: 0
Accepted
time: 72ms
memory: 39200kb
input:
1 297687 114063 114325 61315 256781 17004 254276 279378 173674 50685 133866 254276 270764 254276 168958 160573 254276 183000 144763 254276 41646 138547 226105 254276 62934 250757 284583 254276 147160 254276 62486 163839 23030 246684 80048 219153 38897 254276 184254 297273 295022 146005 254276 229491...
output:
74500 165998 160774 68234 131519 258631 293857 170486 277302 44733 18769 151548 39812 38418 220104 12355 199038 191359 45006 145756 262597 81896 107174 139521 11416 182108 271842 54936 112085 27303 244370 281270 28441 114169 146145 218041 171279 63686 124834 14692 283984 40965 8858 281420 129733 207...
result:
ok Good Job! (1 test case)
Test #31:
score: 0
Accepted
time: 60ms
memory: 39952kb
input:
1 298467 24310 131068 270342 284416 110818 163791 140749 270342 200509 156894 128257 270342 286273 39457 230236 150598 48559 18558 271934 270342 270342 221456 270342 240611 146171 270342 142089 270342 265273 37099 4824 207615 273677 270342 270342 233942 131877 270342 282024 14594 58550 270342 3225 1...
output:
99500 29667 275698 184623 168826 108251 175741 221699 266132 264566 288286 98659 224267 274099 200572 225317 1370 104800 41883 133683 32713 108538 279372 249242 200371 287403 101216 229641 252340 40271 101077 156259 23657 264100 23594 44139 249919 24562 254646 133443 57209 62852 216019 142798 179980...
result:
ok Good Job! (1 test case)
Test #32:
score: 0
Accepted
time: 41ms
memory: 34044kb
input:
1 299096 43798 64829 64829 22308 25723 64829 125491 64829 132554 64829 64829 31091 82698 64829 161922 64829 64829 48363 153172 64829 198568 64829 64829 68075 246874 64829 64829 122620 64829 237999 64829 257438 44676 64829 64829 295759 64829 45750 64829 17755 195879 64829 86788 64829 172696 64829 648...
output:
-1
result:
ok Good Job! (1 test case)
Test #33:
score: 0
Accepted
time: 59ms
memory: 44388kb
input:
1 299097 55978 208819 55978 222666 55978 118386 176498 55978 177724 55978 55978 286400 7823 55978 55978 86011 258404 55978 55978 127466 55978 52857 34668 55978 31665 55978 55978 160320 55978 239002 290038 55978 55978 36827 55978 280050 55978 104777 55978 158847 52282 55978 206198 55978 55978 58412 1...
output:
149548 257132 197746 280431 283255 266001 105491 255180 96231 283182 34528 58809 280524 12267 288146 288565 152293 122263 199576 265260 238077 292878 296354 269524 81312 143614 276110 36649 45649 137718 228585 36265 275568 281461 173733 167482 249230 28515 266671 183746 215839 257279 135939 197056 1...
result:
ok Good Job! (1 test case)
Test #34:
score: 0
Accepted
time: 55ms
memory: 43796kb
input:
1 299097 166438 82625 82625 128838 82625 141580 83485 82625 82625 210941 82625 40444 82625 45514 112980 82625 82625 8971 82625 240680 53717 82625 82625 243508 275918 82625 82625 214884 80291 82625 82625 244056 278345 82625 82625 50552 82625 84626 234287 82625 227857 82625 82625 282783 82625 169441 1...
output:
149548 272810 284438 168533 1773 44830 45536 89247 234754 224454 26496 175752 253553 97418 80862 272599 161897 181710 252048 178092 195304 94161 130395 90886 89984 102793 141496 152714 18763 180433 69713 233532 64627 47059 143600 177876 3519 270112 54312 246221 41739 94801 167394 260929 213166 48530...
result:
ok Good Job! (1 test case)
Test #35:
score: 0
Accepted
time: 62ms
memory: 45176kb
input:
1 299097 260330 58892 133029 58892 58892 172471 42729 58892 58892 26074 58892 99490 58892 3974 59464 58892 58892 186328 119256 58892 225649 58892 162394 58892 58892 128284 58892 215895 281775 58892 275533 58892 58892 149488 167782 58892 22771 58892 58892 63000 58892 9677 83128 58892 58892 121018 588...
output:
149548 153018 13893 60280 156195 2182 282301 154097 233607 36172 178422 75835 171123 54263 148250 296959 270356 73847 39979 181257 95981 88036 13333 290396 85091 104163 150819 61461 138126 82389 135359 3037 265411 162380 138907 29852 285976 136970 52265 43588 124756 77938 190790 29923 169468 176615 ...
result:
ok Good Job! (1 test case)
Test #36:
score: 0
Accepted
time: 42ms
memory: 7504kb
input:
10 29462 10852 16001 15495 6444 21756 23481 23752 13053 21560 13691 9711 23194 24917 23476 13053 18916 5 8995 17585 23447 644 13053 27831 13053 22383 10656 15443 21538 10814 3308 4868 2089 23555 13053 25895 13053 12345 13893 13053 14041 13053 8611 4444 15324 23999 27186 27037 13053 23208 22273 22940...
output:
4950 22368 4934 29168 4371 8939 11001 27302 3913 18192 7880 398 23175 21877 25949 23403 7269 6179 25550 5435 8434 4346 8233 22132 6123 3924 12847 27871 3421 1221 22728 18843 6867 28580 14595 11543 18443 14504 8517 26408 19903 10440 9955 6211 14539 22526 9623 4430 13037 16470 6696 10613 1245 4168 193...
result:
ok Good Job! (10 test cases)
Test #37:
score: 0
Accepted
time: 31ms
memory: 4520kb
input:
100 2959 1769 2187 2304 2429 2635 1931 271 2342 1671 153 707 1154 2597 1668 1048 204 1242 1301 926 2013 1557 2752 488 1893 613 1809 1416 2395 120 1179 982 321 2686 86 2313 2009 878 848 1447 2207 728 1885 2812 1683 1290 1627 2701 135 933 1099 1719 393 2355 2519 1368 384 311 1080 823 1642 459 2670 266...
output:
50 1967 13 2879 2535 2624 945 1131 2596 1500 2660 2231 1854 1916 986 2273 1216 1400 957 950 2515 2614 1384 1865 651 486 1879 2397 1903 804 31 2300 1191 1228 1477 234 2235 1766 2066 1984 2377 1428 1457 2525 2193 1885 2329 655 340 2657 2182 1618 2340 1226 2178 2185 579 459 1205 2634 1713 1886 126 455 ...
result:
ok Good Job! (100 test cases)
Test #38:
score: 0
Accepted
time: 31ms
memory: 4024kb
input:
1000 294 200 192 200 46 43 256 85 47 98 12 127 200 111 127 257 124 168 32 45 274 197 49 200 27 144 38 156 256 148 202 200 80 31 248 35 66 282 128 60 200 189 37 88 54 238 280 44 245 46 263 220 53 144 200 200 55 58 184 200 153 84 173 31 284 24 170 200 211 22 244 232 242 200 208 188 26 139 154 251 104 ...
output:
48 200 140 216 222 85 254 215 260 267 6 291 94 40 3 141 188 278 32 177 133 285 261 74 116 122 259 207 73 205 244 135 93 281 279 51 142 193 165 114 150 266 276 5 176 164 92 155 231 105 9 206 103 97 63 62 50 173 235 21 243 13 169 182 69 125 16 8 258 11 172 191 242 89 224 34 240 2 7 118 44 124 78 208 4...
result:
ok Good Job! (1000 test cases)
Test #39:
score: 0
Accepted
time: 105ms
memory: 43548kb
input:
1 299997 253129 238438 256990 147794 56683 265606 62100 74831 58006 231602 227120 138613 72936 16010 271383 221839 110579 31739 13864 11106 196180 159069 78858 61661 262511 279235 45738 172410 2512 6066 144552 29625 194524 184023 196218 229474 256817 33532 166763 175023 188106 91596 93278 158818 280...
output:
149998 8364 179263 171884 89965 183635 231660 35421 200875 172947 91527 102115 296526 97781 286719 43537 137064 200088 72076 99153 104670 78383 167290 230198 104781 196189 278568 82812 45806 200983 234818 104892 154049 258745 65095 272312 157960 141409 9536 286648 136608 184926 173012 78691 231179 5...
result:
ok Good Job! (1 test case)
Test #40:
score: 0
Accepted
time: 96ms
memory: 43100kb
input:
1 299995 251405 13382 21412 273614 170998 239060 142811 89087 163686 80590 54073 23173 29717 93866 155059 150414 171846 663 218307 10405 252692 83378 131202 289721 52385 252854 293096 280491 216796 237285 242784 243233 52784 6922 68312 26488 205497 147202 65036 297840 58601 67107 164525 57839 167843...
output:
149997 208277 36504 291005 103293 63341 285890 228702 95072 153874 286094 84233 109006 131014 147091 212941 246573 7106 126159 252001 261209 7722 134967 1517 125949 61167 189592 118799 11507 46804 105226 51376 57210 11479 73696 59746 73938 289650 18417 171909 223128 132735 200275 118440 1465 29592 8...
result:
ok Good Job! (1 test case)
Test #41:
score: 0
Accepted
time: 101ms
memory: 42172kb
input:
1 299993 5467 110867 249637 87281 209055 74176 170317 272027 19928 97403 158898 19368 120942 93881 150886 63314 221175 188504 125295 79790 241291 263489 258417 196595 157362 130040 163372 85682 261036 45856 257946 163512 54262 17552 251249 14029 213457 65927 265238 36030 4861 71772 159755 111439 375...
output:
149996 204012 38771 85296 192918 89703 26149 285468 130683 102102 157162 103060 92869 195375 49273 177817 95709 236236 147527 66255 260060 177599 71843 294963 47687 297377 55062 8418 49678 184801 279143 63303 104648 299490 83899 31054 27686 38446 50357 228713 283042 3762 196195 158306 269749 183732 ...
result:
ok Good Job! (1 test case)
Test #42:
score: 0
Accepted
time: 96ms
memory: 42328kb
input:
1 299991 248982 174625 105559 244297 35265 128781 206509 158409 13863 41023 249166 59270 215265 188850 218206 113138 126624 205065 241101 283870 31511 34427 237845 182965 134293 221193 214509 104965 67564 158810 198261 216053 115921 200242 245392 107170 62619 285117 48060 132083 166094 84748 150023 ...
output:
149995 115014 112477 105363 26337 274965 232917 278819 141892 164707 212113 243178 273429 249697 5016 83258 260516 19014 263118 35375 123252 224878 112323 123462 199630 82243 268894 111395 281175 256375 152678 222087 101646 47245 57991 258690 59783 240162 65202 217549 35987 187024 202181 83078 26423...
result:
ok Good Job! (1 test case)
Test #43:
score: 0
Accepted
time: 110ms
memory: 44080kb
input:
1 299999 185541 176688 252501 252009 201515 181336 174664 10052 235206 78841 271650 240453 177704 41444 30343 236755 136584 224074 123830 176470 119252 294416 176341 111829 241834 52983 35945 184402 68227 225761 146133 151540 249663 70136 156441 42951 95322 152829 259090 103376 84766 152588 150129 1...
output:
149999 41549 100226 80046 223007 73646 225123 46530 122246 71160 153244 71465 224577 230367 228750 137729 274464 73231 37706 109682 17485 173974 182022 141271 110267 117421 201993 77870 145157 135972 54187 21119 244181 178956 257489 214311 279059 256585 284774 292795 286677 117676 37801 77761 24225 ...
result:
ok Good Job! (1 test case)
Test #44:
score: 0
Accepted
time: 107ms
memory: 44172kb
input:
1 299997 46586 268160 120257 162918 155586 87070 233774 236522 195573 139640 213343 184602 26338 174317 236326 103114 246267 241694 166020 217647 73806 217138 115817 291894 296219 281396 231138 217264 57086 215561 296205 295067 174916 36910 262907 177629 268640 277927 33944 172724 299448 298104 2913...
output:
149998 73387 18515 121133 106778 70828 247346 28941 267941 196549 275441 6296 419 75336 102084 36378 54986 102884 151927 202105 168662 275586 216972 287467 279250 109173 92035 56116 242435 79213 147866 127446 192634 123898 130223 52810 27095 267150 196251 202321 278570 252877 278840 14703 133083 144...
result:
ok Good Job! (1 test case)
Test #45:
score: 0
Accepted
time: 53ms
memory: 4376kb
input:
100 2997 1842 108 983 1626 2076 2280 1960 2673 2029 1154 1506 836 144 1843 173 1775 322 1567 1632 1092 2608 2819 2737 2888 24 2046 400 2487 2396 2569 2072 1695 2223 2237 2175 592 694 2236 2523 2322 2211 2325 2196 2888 1509 1586 2376 2272 2063 2310 2471 2612 2530 2101 1618 25 1830 1404 2646 743 2256 ...
output:
1498 52 186 206 1777 744 2244 674 2393 544 1328 1439 1672 1495 535 514 308 715 1542 1142 1604 2032 2039 162 1456 1058 1528 380 1556 1355 1592 980 1895 2174 2345 2171 2410 2409 2601 464 1375 1049 1514 1128 223 916 1100 1197 367 1828 2100 1985 2200 2494 2699 369 309 1321 560 407 566 1313 1625 135 1741...
result:
ok Good Job! (100 test cases)
Extra Test:
score: 0
Extra Test Passed