Submission #71726902
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
namespace utility {
struct timer {
chrono::high_resolution_clock::time_point start;
void CodeStart() { start = chrono::high_resolution_clock::now(); }
double elapsed() const {
using namespace std::chrono;
return (double)duration_cast<milliseconds>(high_resolution_clock::now() - start).count();
}
} mytm;
}
// ---------------------------------------------------------
struct Trace {
int i, j; // (-1, -1) は何もしない
int parent_id;
Trace() : i(-1), j(-1), parent_id(-1) {}
Trace(int _i, int _j, int _p) : i(_i), j(_j), parent_id(_p) {}
};
// ---------------------------------------------------------
struct State {
int trace_id;
long double apples;
double B[4][10];
int P[4][10];
long double score;
// comparator用:固定のタイブレーク(sort中に変化しない)
uint64_t tie;
State() : trace_id(-1), apples(0), score(0), tie(0) {
rep(i, 4) rep(j, 10) {
B[i][j] = 1.0;
P[i][j] = 0;
}
}
};
// splitmix64 (fast RNG)
struct SplitMix64 {
uint64_t x;
explicit SplitMix64(uint64_t seed = 0) : x(seed) {}
uint64_t next_u64() {
uint64_t z = (x += 0x9e3779b97f4a7c15ULL);
z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9ULL;
z = (z ^ (z >> 27)) * 0x94d049bb133111ebULL;
return z ^ (z >> 31);
}
double next_double() { // [0,1)
return (next_u64() >> 11) * (1.0 / 9007199254740992.0);
}
};
struct Params {
int BW_EARLY = 700;
int BW_MID = 450;
int BW_LATE = 280;
int BW_END = 140;
int guarantee_early = 2;
int guarantee_late = 1;
int KR = 7;
int KG = 4;
};
struct RunResult {
long double final_apples = -1;
vector<pair<int,int>> moves; // size T
};
inline unsigned int rand_int() {
static unsigned int tx = 123456789, ty = 362436069, tz = 521288629, tw = 88675123;
unsigned int tt = (tx ^ (tx << 11));
tx = ty, ty = tz, tz = tw;
return (tw = (tw ^ (tw >> 19)) ^ (tt ^ (tt >> 8)));
}
inline double rand_double() {
return (double) (rand_int() % (int) 1e9) / 1e9;
}
struct Solver {
int N, L, T;
long long K;
vector<int> A;
vector<vector<long long>> C;
static constexpr long double APPLE_CAP = 1e300L;
static constexpr double B_CAP = 1e200;
Solver() { input(); }
void input() {
cin >> N >> L >> T >> K;
A.resize(N);
rep(j, N) cin >> A[j];
C.assign(L, vector<long long>(N));
rep(i, L) rep(j, N) cin >> C[i][j];
}
static inline void clampApple(long double &x) {
if (x > APPLE_CAP) x = APPLE_CAP;
if (x < -APPLE_CAP) x = -APPLE_CAP;
}
static inline void clampB(double &x) {
if (x > B_CAP) x = B_CAP;
if (x < -B_CAP) x = -B_CAP;
}
inline void process_production(State &s) const {
// Level 0
rep(j, N) {
if (s.P[0][j] == 0) continue;
long double add = (long double)A[j] * (long double)s.B[0][j] * (long double)s.P[0][j];
s.apples += add;
}
clampApple(s.apples);
// Level 1..3
for (int i = 1; i < L; i++) {
rep(j, N) {
if (s.P[i][j] == 0) continue;
double prod = s.B[i][j] * (double)s.P[i][j];
s.B[i - 1][j] += prod;
clampB(s.B[i - 1][j]);
}
}
}
// 「これ以上強化しない」前提での最終りんご(固定Pの閉形式)
inline long double project_no_more_upgrades(const State &s, int R) const {
if (R <= 0) return s.apples;
long double res = s.apples;
long double r = (long double)R;
long double S1 = r * (r - 1.0L) / 2.0L;
long double S2 = (r - 1.0L) * r * (2.0L * r - 1.0L) / 6.0L;
long double S3 = S1 * S1;
long double ST = 2.0L * S3 - 3.0L * S2 + S1;
rep(j, N) {
int p0i = s.P[0][j];
if (p0i == 0) continue;
long double b0 = (long double)s.B[0][j];
long double b1 = (long double)s.B[1][j];
long double b2 = (long double)s.B[2][j];
long double b3 = (long double)s.B[3][j];
long double p1 = (long double)s.P[1][j];
long double p2 = (long double)s.P[2][j];
long double p3 = (long double)s.P[3][j];
long double d2 = b3 * p3;
long double c0 = b1;
long double c2 = (p2 * d2) / 2.0L;
long double c1 = p2 * b2 - c2;
long double sum_prefix =
c0 * S1 +
(c1 / 2.0L) * (S2 - S1) +
(c2 / 6.0L) * ST;
long double sum_b0 = b0 * r + p1 * sum_prefix;
long double gain = (long double)A[j] * (long double)p0i * sum_b0;
res += gain;
}
clampApple(res);
// 残りターン数が大きいほどより乱数を入れる
res += ((r + rand_int() % 10) / T) * res;
return res;
}
inline long double evaluate_after_production(const State &s_after, int remaining_turns) const {
return project_no_more_upgrades(s_after, remaining_turns);
}
inline bool can_upgrade(const State &s, int i, int j, long double &cost_out) const {
long double cost = (long double)C[i][j] * (long double)(s.P[i][j] + 1);
cost_out = cost;
return s.apples + 1e-18L >= cost;
}
inline long double heuristic_gain(const State &s, int i, int j, int turns_including_this) const {
long double R = (long double)turns_including_this;
if (R <= 0) return 0;
long double a = (long double)A[j];
long double b0 = (long double)s.B[0][j];
long double b1 = (long double)s.B[1][j];
long double b2 = (long double)s.B[2][j];
long double b3 = (long double)s.B[3][j];
long double p0 = (long double)max(1, s.P[0][j]);
long double p1 = (long double)max(1, s.P[1][j]);
long double p2 = (long double)max(1, s.P[2][j]);
long double comb1 = R;
long double comb2 = R * (R - 1.0L) / 2.0L;
long double comb3 = R * (R - 1.0L) * (R - 2.0L) / 6.0L;
long double comb4 = R * (R - 1.0L) * (R - 2.0L) * (R - 3.0L) / 24.0L;
if (i == 0) return a * b0 * comb1;
if (i == 1) return a * p0 * b1 * comb2;
if (i == 2) return a * p0 * p1 * b2 * comb3;
return a * p0 * p1 * p2 * b3 * comb4;
}
static inline bool better_state(const State &a, const State &b) {
if (a.score != b.score) return a.score > b.score;
return a.tie > b.tie;
}
int greedy_finish(State s, int t_start, vector<Trace> &traces, const Params &pm) const {
for (int t = t_start; t < T; t++) {
int remaining = T - 1 - t;
int best_i = -1, best_j = -1;
State best_ns;
long double best_score = -1;
// wait
{
State ns = s;
process_production(ns);
ns.score = evaluate_after_production(ns, remaining);
best_score = ns.score;
best_ns = ns;
best_i = -1; best_j = -1;
}
// upgrades full scan
rep(i, L) rep(j, N) {
long double cost;
if (!can_upgrade(s, i, j, cost)) continue;
State ns = s;
ns.apples -= cost;
ns.P[i][j]++;
process_production(ns);
ns.score = evaluate_after_production(ns, remaining);
if (ns.score > best_score) {
best_score = ns.score;
best_ns = ns;
best_i = i;
best_j = j;
}
}
traces.emplace_back(best_i, best_j, s.trace_id);
best_ns.trace_id = (int)traces.size() - 1;
s = best_ns;
}
return s.trace_id;
}
RunResult run_once(const Params &pm, uint64_t seed, double global_deadline_ms) const {
SplitMix64 rng(seed);
vector<Trace> traces;
// 目安:earlyで 700*(1+KR+KG+1) ≈ 700*13=9100/turn, 500turn で 4.5M 程度
traces.reserve(8000000);
State init;
init.apples = (long double)K;
init.trace_id = -1;
init.tie = rng.next_u64();
vector<State> beam;
beam.reserve(pm.BW_EARLY);
beam.push_back(init);
int last_trace_id = -1;
auto assign_tie = [&](State &s) { s.tie = rng.next_u64(); };
for (int t = 0; t < T; t++) {
if (utility::mytm.elapsed() > global_deadline_ms) {
int best_idx = 0;
rep(i, (int)beam.size()) if (beam[i].apples > beam[best_idx].apples) best_idx = i;
last_trace_id = greedy_finish(beam[best_idx], t, traces, pm);
goto RECONSTRUCT;
}
int remaining = T - 1 - t;
int BW;
if (t < 120) BW = pm.BW_EARLY;
else if (t < 260) BW = pm.BW_MID;
else if (t < 420) BW = pm.BW_LATE;
else BW = pm.BW_END;
int guarantee = (t < 220 ? pm.guarantee_early : pm.guarantee_late);
vector<vector<State>> buckets(N + 1);
rep(b, N + 1) buckets[b].reserve((int)beam.size());
for (const auto &cur : beam) {
// wait child
{
State ns = cur;
traces.emplace_back(-1, -1, cur.trace_id);
ns.trace_id = (int)traces.size() - 1;
assign_tie(ns);
process_production(ns);
ns.score = evaluate_after_production(ns, remaining);
buckets[N].push_back(ns);
}
// base projection for delta
long double base_proj = project_no_more_upgrades(cur, remaining + 1);
// cheap prefilter: per j take best ratio and best gain (max 2*N)
bool picked[4][10];
rep(i, 4) rep(j, 10) picked[i][j] = false;
vector<pair<int,int>> pre;
pre.reserve(2 * N);
int turns_including_this = remaining + 1;
rep(j, N) {
long double best_r = -1;
int best_ri = -1;
long double best_g = -1;
int best_gi = -1;
rep(i, L) {
long double cost;
if (!can_upgrade(cur, i, j, cost)) continue;
long double g = heuristic_gain(cur, i, j, turns_including_this);
long double r = g / (cost + 1e-18L);
long double level_bonus = 1.0L + (long double)(3 - i) * (t < 250 ? 0.05L : 0.02L);
r *= level_bonus;
g *= level_bonus;
if (r > best_r) { best_r = r; best_ri = i; }
if (g > best_g) { best_g = g; best_gi = i; }
}
if (best_ri != -1) {
picked[best_ri][j] = true;
pre.push_back({best_ri, j});
}
if (best_gi != -1 && !picked[best_gi][j]) {
picked[best_gi][j] = true;
pre.push_back({best_gi, j});
}
}
if (!pre.empty()) {
struct Cand2 {
int i, j;
long double delta;
long double ratio;
};
vector<Cand2> cand2;
cand2.reserve(pre.size());
for (auto [i, j] : pre) {
long double cost = (long double)C[i][j] * (long double)(cur.P[i][j] + 1);
if (cur.apples + 1e-18L < cost) continue;
State tmp = cur;
tmp.apples -= cost;
tmp.P[i][j]++;
long double proj = project_no_more_upgrades(tmp, remaining + 1);
long double delta = proj - base_proj;
if (delta <= 0) continue;
long double ratio = delta / (cost + 1e-18L);
cand2.push_back({i, j, delta, ratio});
}
if (!cand2.empty()) {
vector<pair<int,int>> selected;
selected.reserve(pm.KR + pm.KG + 2);
bool used2[4][10];
rep(i, 4) rep(j, 10) used2[i][j] = false;
auto take_top = [&](int k, auto cmp) {
k = min(k, (int)cand2.size());
if (k <= 0) return;
nth_element(cand2.begin(), cand2.begin() + (k - 1), cand2.end(), cmp);
vector<Cand2> top;
top.reserve(k);
rep(tk, k) top.push_back(cand2[tk]);
sort(top.begin(), top.end(), cmp);
for (auto &x : top) {
if (!used2[x.i][x.j]) {
used2[x.i][x.j] = true;
selected.push_back({x.i, x.j});
}
}
};
take_top(pm.KR, [&](const Cand2 &a, const Cand2 &b){
if (a.ratio != b.ratio) return a.ratio > b.ratio;
return a.delta > b.delta;
});
take_top(pm.KG, [&](const Cand2 &a, const Cand2 &b){
if (a.delta != b.delta) return a.delta > b.delta;
return a.ratio > b.ratio;
});
for (auto [i, j] : selected) {
long double cost = (long double)C[i][j] * (long double)(cur.P[i][j] + 1);
if (cur.apples + 1e-18L < cost) continue;
State ns = cur;
ns.apples -= cost;
ns.P[i][j]++;
traces.emplace_back(i, j, cur.trace_id);
ns.trace_id = (int)traces.size() - 1;
assign_tie(ns);
process_production(ns);
ns.score = evaluate_after_production(ns, remaining);
buckets[j].push_back(ns);
}
}
}
}
// 次ビーム選択:各バケットから保証枠 + 残りを全体上位
vector<State> next_beam;
next_beam.reserve(BW);
vector<State> pool;
pool.reserve(BW * 3);
auto keep_top_k = [&](vector<State> &v, int k) {
if ((int)v.size() <= k) {
sort(v.begin(), v.end(), better_state);
return;
}
nth_element(v.begin(), v.begin() + k, v.end(), [&](const State &a, const State &b){
if (a.score != b.score) return a.score > b.score;
return a.tie > b.tie;
});
v.resize(k);
sort(v.begin(), v.end(), better_state);
};
for (int b = 0; b <= N; b++) {
auto &v = buckets[b];
if (v.empty()) continue;
int take = min(guarantee, (int)v.size());
keep_top_k(v, min((int)v.size(), take + 24)); // 少しだけ余りを残して pool に流す
rep(k, take) next_beam.push_back(v[k]);
for (int k = take; k < (int)v.size() && (int)pool.size() < BW * 3; k++) {
pool.push_back(v[k]);
}
}
if ((int)next_beam.size() < BW && !pool.empty()) {
int need = BW - (int)next_beam.size();
keep_top_k(pool, min(need, (int)pool.size()));
rep(i, min(need, (int)pool.size())) next_beam.push_back(pool[i]);
}
sort(next_beam.begin(), next_beam.end(), better_state);
if ((int)next_beam.size() > BW) next_beam.resize(BW);
beam.swap(next_beam);
if (beam.empty()) {
State s;
s.apples = (long double)K;
last_trace_id = greedy_finish(s, t, traces, pm);
goto RECONSTRUCT;
}
}
// 通常終了:最終りんご最大
{
int best_idx = 0;
rep(i, (int)beam.size()) if (beam[i].apples > beam[best_idx].apples) best_idx = i;
last_trace_id = beam[best_idx].trace_id;
}
RECONSTRUCT:
RunResult rr;
rr.moves.reserve(T);
vector<pair<int,int>> moves;
moves.reserve(T);
int cur_id = last_trace_id;
while (cur_id != -1) {
moves.push_back({traces[cur_id].i, traces[cur_id].j});
cur_id = traces[cur_id].parent_id;
}
reverse(moves.begin(), moves.end());
while ((int)moves.size() < T) moves.push_back({-1, -1});
if ((int)moves.size() > T) moves.resize(T);
// final apples を堅実に算出(T=500なので軽い)
{
State s;
s.apples = (long double)K;
rep(i, 4) rep(j, 10) { s.B[i][j] = 1.0; s.P[i][j] = 0; }
rep(t, T) {
int ai = moves[t].first;
int aj = moves[t].second;
if (ai != -1) {
long double cost = (long double)C[ai][aj] * (long double)(s.P[ai][aj] + 1);
if (s.apples + 1e-18L >= cost) {
s.apples -= cost;
s.P[ai][aj]++;
}
}
process_production(s);
}
rr.final_apples = s.apples;
}
rr.moves = std::move(moves);
return rr;
}
void solve() {
utility::mytm.CodeStart();
const double TIME_LIMIT_MS = 2000.0;
Params base;
RunResult best;
best.final_apples = -1;
uint64_t base_seed = 0x123456789abcdef0ULL;
base_seed ^= (uint64_t)K * 0x9e3779b97f4a7c15ULL;
int iter = 0;
while (true) {
double now = utility::mytm.elapsed();
if (now > TIME_LIMIT_MS - 35.0) break;
Params pm = base;
if (iter % 4 == 0) { pm.KR = 1; pm.KG = 1; }
if (iter % 4 == 1) { pm.KR = 1; pm.KG = 2; }
if (iter % 4 == 2) { pm.KR = 2; pm.KG = 1; }
if (iter % 4 == 3) { pm.KR = 2; pm.KG = 2; }
pm.guarantee_early = 2;
pm.guarantee_late = 1;
uint64_t seed = base_seed ^ (uint64_t)(iter + 1) * 0x9e3779b97f4a7c15ULL;
double deadline = TIME_LIMIT_MS - 12.0;
RunResult rr = run_once(pm, seed, deadline);
if (rr.final_apples > best.final_apples) {
best = std::move(rr);
}
iter++;
cerr << "iter " << iter << ", best apples = " << (long long)(best.final_apples) << ", time = " << now << " ms\n";
}
if (best.final_apples < 0) {
rep(t, T) cout << -1 << "\n";
return;
}
rep(t, T) {
int i = best.moves[t].first;
int j = best.moves[t].second;
if (i == -1) cout << -1 << "\n";
else cout << i << " " << j << "\n";
}
}
};
int main() {
cin.tie(nullptr);
ios::sync_with_stdio(false);
Solver solver;
solver.solve();
return 0;
}
Submission Info
| Submission Time |
|
| Task |
A - Apple Incremental Game |
| User |
through |
| Language |
C++23 (GCC 15.2.0) |
| Score |
807904152 |
| Code Size |
17833 Byte |
| Status |
AC |
| Exec Time |
1992 ms |
| Memory |
12740 KiB |
Compile Error
./Main.cpp: In member function 'int Solver::greedy_finish(State, int, std::vector<Trace>&, const Params&) const':
./Main.cpp:229:80: warning: unused parameter 'pm' [-Wunused-parameter]
229 | int greedy_finish(State s, int t_start, vector<Trace> &traces, const Params &pm) const {
| ~~~~~~~~~~~~~~^~
Judge Result
| Set Name |
test_ALL |
| Score / Max Score |
807904152 / 150000000000 |
| Status |
|
| Set Name |
Test Cases |
| test_ALL |
test_0000.txt, test_0001.txt, test_0002.txt, test_0003.txt, test_0004.txt, test_0005.txt, test_0006.txt, test_0007.txt, test_0008.txt, test_0009.txt, test_0010.txt, test_0011.txt, test_0012.txt, test_0013.txt, test_0014.txt, test_0015.txt, test_0016.txt, test_0017.txt, test_0018.txt, test_0019.txt, test_0020.txt, test_0021.txt, test_0022.txt, test_0023.txt, test_0024.txt, test_0025.txt, test_0026.txt, test_0027.txt, test_0028.txt, test_0029.txt, test_0030.txt, test_0031.txt, test_0032.txt, test_0033.txt, test_0034.txt, test_0035.txt, test_0036.txt, test_0037.txt, test_0038.txt, test_0039.txt, test_0040.txt, test_0041.txt, test_0042.txt, test_0043.txt, test_0044.txt, test_0045.txt, test_0046.txt, test_0047.txt, test_0048.txt, test_0049.txt, test_0050.txt, test_0051.txt, test_0052.txt, test_0053.txt, test_0054.txt, test_0055.txt, test_0056.txt, test_0057.txt, test_0058.txt, test_0059.txt, test_0060.txt, test_0061.txt, test_0062.txt, test_0063.txt, test_0064.txt, test_0065.txt, test_0066.txt, test_0067.txt, test_0068.txt, test_0069.txt, test_0070.txt, test_0071.txt, test_0072.txt, test_0073.txt, test_0074.txt, test_0075.txt, test_0076.txt, test_0077.txt, test_0078.txt, test_0079.txt, test_0080.txt, test_0081.txt, test_0082.txt, test_0083.txt, test_0084.txt, test_0085.txt, test_0086.txt, test_0087.txt, test_0088.txt, test_0089.txt, test_0090.txt, test_0091.txt, test_0092.txt, test_0093.txt, test_0094.txt, test_0095.txt, test_0096.txt, test_0097.txt, test_0098.txt, test_0099.txt, test_0100.txt, test_0101.txt, test_0102.txt, test_0103.txt, test_0104.txt, test_0105.txt, test_0106.txt, test_0107.txt, test_0108.txt, test_0109.txt, test_0110.txt, test_0111.txt, test_0112.txt, test_0113.txt, test_0114.txt, test_0115.txt, test_0116.txt, test_0117.txt, test_0118.txt, test_0119.txt, test_0120.txt, test_0121.txt, test_0122.txt, test_0123.txt, test_0124.txt, test_0125.txt, test_0126.txt, test_0127.txt, test_0128.txt, test_0129.txt, test_0130.txt, test_0131.txt, test_0132.txt, test_0133.txt, test_0134.txt, test_0135.txt, test_0136.txt, test_0137.txt, test_0138.txt, test_0139.txt, test_0140.txt, test_0141.txt, test_0142.txt, test_0143.txt, test_0144.txt, test_0145.txt, test_0146.txt, test_0147.txt, test_0148.txt, test_0149.txt |
| Case Name |
Status |
Exec Time |
Memory |
| test_0000.txt |
AC |
1991 ms |
11188 KiB |
| test_0001.txt |
AC |
1967 ms |
10956 KiB |
| test_0002.txt |
AC |
1978 ms |
10476 KiB |
| test_0003.txt |
AC |
1991 ms |
10824 KiB |
| test_0004.txt |
AC |
1991 ms |
10624 KiB |
| test_0005.txt |
AC |
1969 ms |
11948 KiB |
| test_0006.txt |
AC |
1984 ms |
11564 KiB |
| test_0007.txt |
AC |
1983 ms |
11912 KiB |
| test_0008.txt |
AC |
1991 ms |
10528 KiB |
| test_0009.txt |
AC |
1990 ms |
11816 KiB |
| test_0010.txt |
AC |
1992 ms |
12672 KiB |
| test_0011.txt |
AC |
1992 ms |
11948 KiB |
| test_0012.txt |
AC |
1992 ms |
11620 KiB |
| test_0013.txt |
AC |
1991 ms |
11636 KiB |
| test_0014.txt |
AC |
1979 ms |
10952 KiB |
| test_0015.txt |
AC |
1990 ms |
10480 KiB |
| test_0016.txt |
AC |
1991 ms |
10976 KiB |
| test_0017.txt |
AC |
1991 ms |
11664 KiB |
| test_0018.txt |
AC |
1991 ms |
12276 KiB |
| test_0019.txt |
AC |
1992 ms |
11276 KiB |
| test_0020.txt |
AC |
1976 ms |
11692 KiB |
| test_0021.txt |
AC |
1991 ms |
11264 KiB |
| test_0022.txt |
AC |
1992 ms |
11444 KiB |
| test_0023.txt |
AC |
1991 ms |
10304 KiB |
| test_0024.txt |
AC |
1991 ms |
10860 KiB |
| test_0025.txt |
AC |
1991 ms |
10440 KiB |
| test_0026.txt |
AC |
1991 ms |
10528 KiB |
| test_0027.txt |
AC |
1991 ms |
10848 KiB |
| test_0028.txt |
AC |
1992 ms |
11200 KiB |
| test_0029.txt |
AC |
1992 ms |
11680 KiB |
| test_0030.txt |
AC |
1991 ms |
11248 KiB |
| test_0031.txt |
AC |
1992 ms |
10752 KiB |
| test_0032.txt |
AC |
1991 ms |
10356 KiB |
| test_0033.txt |
AC |
1991 ms |
10780 KiB |
| test_0034.txt |
AC |
1992 ms |
9668 KiB |
| test_0035.txt |
AC |
1991 ms |
10724 KiB |
| test_0036.txt |
AC |
1986 ms |
11124 KiB |
| test_0037.txt |
AC |
1974 ms |
11500 KiB |
| test_0038.txt |
AC |
1991 ms |
10912 KiB |
| test_0039.txt |
AC |
1992 ms |
10896 KiB |
| test_0040.txt |
AC |
1984 ms |
9812 KiB |
| test_0041.txt |
AC |
1991 ms |
11920 KiB |
| test_0042.txt |
AC |
1991 ms |
11816 KiB |
| test_0043.txt |
AC |
1992 ms |
11636 KiB |
| test_0044.txt |
AC |
1991 ms |
11468 KiB |
| test_0045.txt |
AC |
1991 ms |
10584 KiB |
| test_0046.txt |
AC |
1981 ms |
10932 KiB |
| test_0047.txt |
AC |
1992 ms |
11608 KiB |
| test_0048.txt |
AC |
1990 ms |
12124 KiB |
| test_0049.txt |
AC |
1991 ms |
11300 KiB |
| test_0050.txt |
AC |
1992 ms |
11764 KiB |
| test_0051.txt |
AC |
1988 ms |
10884 KiB |
| test_0052.txt |
AC |
1991 ms |
10652 KiB |
| test_0053.txt |
AC |
1992 ms |
11204 KiB |
| test_0054.txt |
AC |
1991 ms |
9812 KiB |
| test_0055.txt |
AC |
1992 ms |
11212 KiB |
| test_0056.txt |
AC |
1992 ms |
11400 KiB |
| test_0057.txt |
AC |
1991 ms |
10868 KiB |
| test_0058.txt |
AC |
1991 ms |
12336 KiB |
| test_0059.txt |
AC |
1991 ms |
10892 KiB |
| test_0060.txt |
AC |
1980 ms |
11736 KiB |
| test_0061.txt |
AC |
1991 ms |
11068 KiB |
| test_0062.txt |
AC |
1991 ms |
11292 KiB |
| test_0063.txt |
AC |
1991 ms |
11244 KiB |
| test_0064.txt |
AC |
1990 ms |
11784 KiB |
| test_0065.txt |
AC |
1991 ms |
10384 KiB |
| test_0066.txt |
AC |
1992 ms |
12204 KiB |
| test_0067.txt |
AC |
1991 ms |
10676 KiB |
| test_0068.txt |
AC |
1968 ms |
10484 KiB |
| test_0069.txt |
AC |
1992 ms |
11244 KiB |
| test_0070.txt |
AC |
1983 ms |
12740 KiB |
| test_0071.txt |
AC |
1992 ms |
11276 KiB |
| test_0072.txt |
AC |
1991 ms |
11128 KiB |
| test_0073.txt |
AC |
1991 ms |
11044 KiB |
| test_0074.txt |
AC |
1991 ms |
11836 KiB |
| test_0075.txt |
AC |
1991 ms |
11544 KiB |
| test_0076.txt |
AC |
1991 ms |
11328 KiB |
| test_0077.txt |
AC |
1992 ms |
11656 KiB |
| test_0078.txt |
AC |
1990 ms |
10444 KiB |
| test_0079.txt |
AC |
1991 ms |
11292 KiB |
| test_0080.txt |
AC |
1975 ms |
9516 KiB |
| test_0081.txt |
AC |
1992 ms |
12300 KiB |
| test_0082.txt |
AC |
1992 ms |
11920 KiB |
| test_0083.txt |
AC |
1990 ms |
10000 KiB |
| test_0084.txt |
AC |
1980 ms |
11084 KiB |
| test_0085.txt |
AC |
1992 ms |
10848 KiB |
| test_0086.txt |
AC |
1991 ms |
11648 KiB |
| test_0087.txt |
AC |
1992 ms |
10200 KiB |
| test_0088.txt |
AC |
1991 ms |
11324 KiB |
| test_0089.txt |
AC |
1991 ms |
11080 KiB |
| test_0090.txt |
AC |
1992 ms |
12076 KiB |
| test_0091.txt |
AC |
1991 ms |
10200 KiB |
| test_0092.txt |
AC |
1991 ms |
11488 KiB |
| test_0093.txt |
AC |
1991 ms |
10492 KiB |
| test_0094.txt |
AC |
1973 ms |
11656 KiB |
| test_0095.txt |
AC |
1991 ms |
10348 KiB |
| test_0096.txt |
AC |
1992 ms |
11204 KiB |
| test_0097.txt |
AC |
1991 ms |
12132 KiB |
| test_0098.txt |
AC |
1991 ms |
11796 KiB |
| test_0099.txt |
AC |
1990 ms |
11236 KiB |
| test_0100.txt |
AC |
1991 ms |
11420 KiB |
| test_0101.txt |
AC |
1992 ms |
11300 KiB |
| test_0102.txt |
AC |
1985 ms |
12468 KiB |
| test_0103.txt |
AC |
1991 ms |
10952 KiB |
| test_0104.txt |
AC |
1992 ms |
11324 KiB |
| test_0105.txt |
AC |
1992 ms |
11560 KiB |
| test_0106.txt |
AC |
1992 ms |
11112 KiB |
| test_0107.txt |
AC |
1991 ms |
10920 KiB |
| test_0108.txt |
AC |
1991 ms |
11712 KiB |
| test_0109.txt |
AC |
1991 ms |
12136 KiB |
| test_0110.txt |
AC |
1992 ms |
11992 KiB |
| test_0111.txt |
AC |
1992 ms |
11216 KiB |
| test_0112.txt |
AC |
1992 ms |
11460 KiB |
| test_0113.txt |
AC |
1991 ms |
11816 KiB |
| test_0114.txt |
AC |
1991 ms |
10932 KiB |
| test_0115.txt |
AC |
1992 ms |
11488 KiB |
| test_0116.txt |
AC |
1991 ms |
9284 KiB |
| test_0117.txt |
AC |
1991 ms |
11788 KiB |
| test_0118.txt |
AC |
1991 ms |
11564 KiB |
| test_0119.txt |
AC |
1979 ms |
11172 KiB |
| test_0120.txt |
AC |
1991 ms |
11084 KiB |
| test_0121.txt |
AC |
1991 ms |
11568 KiB |
| test_0122.txt |
AC |
1991 ms |
10412 KiB |
| test_0123.txt |
AC |
1991 ms |
11680 KiB |
| test_0124.txt |
AC |
1991 ms |
11284 KiB |
| test_0125.txt |
AC |
1974 ms |
10776 KiB |
| test_0126.txt |
AC |
1992 ms |
11348 KiB |
| test_0127.txt |
AC |
1969 ms |
11008 KiB |
| test_0128.txt |
AC |
1991 ms |
11840 KiB |
| test_0129.txt |
AC |
1992 ms |
11648 KiB |
| test_0130.txt |
AC |
1992 ms |
10880 KiB |
| test_0131.txt |
AC |
1992 ms |
11544 KiB |
| test_0132.txt |
AC |
1991 ms |
11240 KiB |
| test_0133.txt |
AC |
1991 ms |
11016 KiB |
| test_0134.txt |
AC |
1991 ms |
11072 KiB |
| test_0135.txt |
AC |
1992 ms |
10752 KiB |
| test_0136.txt |
AC |
1991 ms |
11292 KiB |
| test_0137.txt |
AC |
1992 ms |
10676 KiB |
| test_0138.txt |
AC |
1991 ms |
9640 KiB |
| test_0139.txt |
AC |
1992 ms |
11004 KiB |
| test_0140.txt |
AC |
1991 ms |
12016 KiB |
| test_0141.txt |
AC |
1992 ms |
10816 KiB |
| test_0142.txt |
AC |
1991 ms |
11728 KiB |
| test_0143.txt |
AC |
1991 ms |
11296 KiB |
| test_0144.txt |
AC |
1991 ms |
10528 KiB |
| test_0145.txt |
AC |
1991 ms |
11816 KiB |
| test_0146.txt |
AC |
1991 ms |
11140 KiB |
| test_0147.txt |
AC |
1991 ms |
10876 KiB |
| test_0148.txt |
AC |
1991 ms |
10992 KiB |
| test_0149.txt |
AC |
1992 ms |
10844 KiB |