提出 #73749558
ソースコード 拡げる
#pragma GCC optimize("O3")
#include <iostream>
#include <vector>
#include <string>
#include <chrono>
#include <random>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
// 実行時間管理
struct Timer {
chrono::high_resolution_clock::time_point start_time;
Timer() { start_time = chrono::high_resolution_clock::now(); }
double get_time() {
auto now = chrono::high_resolution_clock::now();
return chrono::duration<double>(now - start_time).count();
}
};
const int N = 20;
struct Input {
int N_val;
long long AK, AM, AW;
vector<string> wall_v;
vector<string> wall_h;
void read() {
if (!(cin >> N_val >> AK >> AM >> AW)) return;
wall_v.resize(N_val);
for (int i = 0; i < N_val; ++i) cin >> wall_v[i];
wall_h.resize(N_val - 1);
for (int i = 0; i < N_val - 1; ++i) cin >> wall_h[i];
}
bool has_wall(int r, int c, int d) const {
if (d == 0) { // U
if (r == 0) return true;
return wall_h[r - 1][c] == '1';
} else if (d == 1) { // R
if (c == N - 1) return true;
return wall_v[r][c] == '1';
} else if (d == 2) { // D
if (r == N - 1) return true;
return wall_h[r][c] == '1';
} else if (d == 3) { // L
if (c == 0) return true;
return wall_v[r][c - 1] == '1';
}
return true;
}
};
struct Robot {
int mk;
int r, c;
char d;
vector<char> a0, a1;
vector<int> b0, b1;
};
struct Solution {
vector<Robot> robots;
long long cost;
void calc_cost(long long AK, long long AM) {
long long K = robots.size();
long long M = 0;
for (const auto& r : robots) M += r.mk;
cost = AK * max(0LL, K - 1) + AM * M;
}
void print() const {
cout << robots.size() << "\n";
for (const auto& rob : robots) {
cout << rob.mk << " " << rob.r << " " << rob.c << " " << rob.d << "\n";
for (int s = 0; s < rob.mk; ++s) {
cout << rob.a0[s] << " " << rob.b0[s] << " " << rob.a1[s] << " " << rob.b1[s] << "\n";
}
}
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N - 1; ++j) cout << "0";
cout << "\n";
}
for (int i = 0; i < N - 1; ++i) {
for (int j = 0; j < N; ++j) cout << "0";
cout << "\n";
}
}
};
const int dr[] = {-1, 0, 1, 0};
const int dc[] = {0, 1, 0, -1};
const char dir_char[] = {'U', 'R', 'D', 'L'};
struct CycleInfo {
Robot rob;
vector<int> cells;
};
Robot shift_robot(Robot rob, int target_r, int target_c, const Input& in) {
int r = rob.r, c = rob.c, d = 0;
if (rob.d == 'U') d = 0; else if (rob.d == 'R') d = 1; else if (rob.d == 'D') d = 2; else if (rob.d == 'L') d = 3;
int s = 0;
for (int step = 0; step < 10000; ++step) {
if (r == target_r && c == target_c) {
vector<int> map_state(rob.mk, -1);
map_state[s] = 0;
int nfree = 1;
for (int i = 0; i < rob.mk; ++i) {
if (map_state[i] == -1) map_state[i] = nfree++;
}
Robot nrob = rob;
nrob.r = r; nrob.c = c; nrob.d = dir_char[d];
for (int i = 0; i < rob.mk; ++i) {
int n_s = map_state[i];
nrob.a0[n_s] = rob.a0[i];
nrob.b0[n_s] = map_state[rob.b0[i]];
nrob.a1[n_s] = rob.a1[i];
nrob.b1[n_s] = map_state[rob.b1[i]];
}
return nrob;
}
bool wall = in.has_wall(r, c, d);
char act = wall ? rob.a1[s] : rob.a0[s];
int nxt_s = wall ? rob.b1[s] : rob.b0[s];
if (act == 'F' && !wall) {
r += dr[d]; c += dc[d];
} else if (act == 'R') d = (d + 1) % 4;
else if (act == 'L') d = (d + 3) % 4;
s = nxt_s;
}
return rob;
}
void explore_policy(int mk, const vector<char>& a0, const vector<int>& b0, const vector<char>& a1, const vector<int>& b1, vector<CycleInfo>& pool, const Input& in, vector<int>& visited, vector<int>& path) {
int V = N * N * 4 * mk;
if (visited.size() < V) visited.resize(V);
else fill(visited.begin(), visited.begin() + V, 0);
for (int start_v = 0; start_v < V; ++start_v) {
if (visited[start_v]) continue;
int curr = start_v;
path.clear();
while (visited[curr] == 0) {
visited[curr] = 1;
path.push_back(curr);
int s = curr % mk;
int tmp = curr / mk;
int d = tmp % 4;
int c = (tmp / 4) % N;
int r = (tmp / 4) / N;
bool wall = in.has_wall(r, c, d);
char act = wall ? a1[s] : a0[s];
int nxt_s = wall ? b1[s] : b0[s];
int nr = r, nc = c, nd = d;
if (act == 'F') {
nr += dr[d]; nc += dc[d];
} else if (act == 'R') {
nd = (d + 1) % 4;
} else if (act == 'L') {
nd = (d + 3) % 4;
}
curr = ((nr * N + nc) * 4 + nd) * mk + nxt_s;
}
if (visited[curr] == 1) {
// found cycle!
int cycle_start_idx = -1;
for (int i = 0; i < (int)path.size(); ++i) {
if (path[i] == curr) { cycle_start_idx = i; break; }
}
if (cycle_start_idx != -1) {
set<int> cov;
for (int i = cycle_start_idx; i < (int)path.size(); ++i) {
int tmp = path[i] / mk;
int cell = tmp / 4;
cov.insert(cell);
}
int start_state = curr % mk;
int start_tmp = curr / mk;
int start_d = start_tmp % 4;
int start_c = (start_tmp / 4) % N;
int start_r = (start_tmp / 4) / N;
vector<int> state_map(mk, -1);
state_map[start_state] = 0;
int nxt_free = 1;
for(int i = cycle_start_idx; i < (int)path.size(); ++i) {
int s = path[i] % mk;
if(state_map[s] == -1) state_map[s] = nxt_free++;
}
for(int s = 0; s < mk; ++s) {
if(state_map[s] == -1) state_map[s] = nxt_free++;
}
Robot rob;
rob.mk = mk;
rob.r = start_r; rob.c = start_c; rob.d = dir_char[start_d];
rob.a0.resize(mk); rob.a1.resize(mk);
rob.b0.resize(mk); rob.b1.resize(mk);
for(int s = 0; s < mk; ++s) {
int new_s = state_map[s];
rob.a0[new_s] = a0[s];
rob.b0[new_s] = state_map[b0[s]];
rob.a1[new_s] = a1[s];
rob.b1[new_s] = state_map[b1[s]];
}
CycleInfo ci;
ci.rob = rob;
for (int cell : cov) ci.cells.push_back(cell);
pool.push_back(ci);
}
}
for (int v : path) visited[v] = 2;
}
}
Solution solve_pattern_A(const Input& in, mt19937& rng, Timer& timer) {
vector<CycleInfo> pool;
vector<int> visited, path;
char acts0[] = {'F', 'R', 'L'};
char acts1[] = {'R', 'L'};
// --- 1. プールの生成(既存のロジック) ---
for (int a0_0 = 0; a0_0 < 3; ++a0_0) {
for (int a1_0 = 0; a1_0 < 2; ++a1_0) {
explore_policy(1, {acts0[a0_0]}, {0}, {acts1[a1_0]}, {0}, pool, in, visited, path);
}
}
for(int a0_0=0; a0_0<3; ++a0_0)
for(int a1_0=0; a1_0<2; ++a1_0)
for(int b0_0=0; b0_0<2; ++b0_0)
for(int b1_0=0; b1_0<2; ++b1_0)
for(int a0_1=0; a0_1<3; ++a0_1)
for(int a1_1=0; a1_1<2; ++a1_1)
for(int b0_1=0; b0_1<2; ++b0_1)
for(int b1_1=0; b1_1<2; ++b1_1) {
explore_policy(2, {acts0[a0_0], acts0[a0_1]}, {b0_0, b0_1}, {acts1[a1_0], acts1[a1_1]}, {b1_0, b1_1}, pool, in, visited, path);
}
for (int mk = 3; mk <= 6; ++mk) {
int iter = 0;
double mk_time_limit = 0.3 * (mk - 1);
while (true) {
iter++;
if ((iter & 31) == 0) {
double t = timer.get_time();
if (t > 1.0) goto EXPLORE_END;
if (t > mk_time_limit) break;
}
vector<char> a0(mk), a1(mk);
vector<int> b0(mk), b1(mk);
for (int s = 0; s < mk; ++s) {
int r0 = rng() % 10;
a0[s] = (r0 < 8) ? 'F' : ((r0 == 8) ? 'R' : 'L');
b0[s] = rng() % mk;
a1[s] = (rng() % 2 == 0) ? 'R' : 'L';
b1[s] = rng() % mk;
}
explore_policy(mk, a0, b0, a1, b1, pool, in, visited, path);
}
}
EXPLORE_END:
int P = pool.size();
if (P == 0) return Solution();
// --- 2. 貪欲法による初期解の構築 ---
vector<bool> current_state(P, false);
vector<int> cov_count(N * N, 0);
int current_uncov = N * N;
int current_k = 0;
long long current_m_sum = 0;
while (current_uncov > 0) {
if ((current_k & 15) == 0 && timer.get_time() > 1.2) break; // Emergency timeout
int best_idx = -1;
double best_score = 1e18;
for (int i = 0; i < P; ++i) {
if (current_state[i]) continue;
int new_cov = 0;
for (int cell : pool[i].cells) if (cov_count[cell] == 0) new_cov++;
if (new_cov == 0) continue;
long long cost_delta = in.AM * pool[i].rob.mk;
if (current_k > 0) cost_delta += in.AK;
double score = (double)cost_delta / new_cov;
if (score < best_score) { best_score = score; best_idx = i; }
}
if (best_idx == -1) break; // Infinite loop fix: no more robots can help
current_state[best_idx] = true;
current_k++;
current_m_sum += pool[best_idx].rob.mk;
for (int cell : pool[best_idx].cells) {
if (cov_count[cell] == 0) current_uncov--;
cov_count[cell]++;
}
}
// --- 3. 焼きなまし法 (SA) ---
auto calc_energy = [&](int k, long long m_sum, int uncov_count) -> double {
double cost = (double)in.AK * max(0, k - 1) + (double)in.AM * m_sum;
// ペナルティをマイルドに設定。1マス未踏につき、平均的なロボット追加コストより少し高いくらいにする
double penalty_per_cell = in.AK + in.AM * 4.0 + 1000.0;
return cost + (double)uncov_count * penalty_per_cell;
};
double current_energy = calc_energy(current_k, current_m_sum, current_uncov);
vector<bool> best_state = current_state;
double best_energy = current_energy;
double start_time = timer.get_time();
double time_limit = 1.15;
// Safety check in case greedy generation took so long we're already out of time
if (start_time >= time_limit) {
Solution sol;
vector<bool> used_initial(N * N, false);
for (int i = 0; i < P; ++i) {
if (best_state[i]) {
Robot rob = pool[i].rob;
int target_cell = -1;
for (int cell : pool[i].cells) {
if (!used_initial[cell]) {
target_cell = cell;
break;
}
}
if (target_cell != -1) {
used_initial[target_cell] = true;
rob = shift_robot(rob, target_cell / N, target_cell % N, in);
}
sol.robots.push_back(rob);
}
}
sol.calc_cost(in.AK, in.AM);
return sol;
}
int sa_iter = 0;
while (true) {
sa_iter++;
if ((sa_iter & 2047) == 0) { // Check time less frequently
if (timer.get_time() > time_limit) break;
}
double progress = (timer.get_time() - start_time) / (time_limit - start_time);
// 温度スケールを調整: 悪化幅(approx 1000~2000)に対して確率的に受理されるように
double temp_start = 2000.0;
double temp_end = 1.0;
double temp = temp_start * pow(temp_end / temp_start, progress); // 指数冷却
int type = rng() % 3;
int add_idx = -1, rem_idx = -1;
if (type == 0 || type == 2) {
add_idx = rng() % P;
if (current_state[add_idx]) add_idx = -1;
}
if (type == 1 || type == 2) {
if (current_k > 0) {
int r = rng() % P;
for(int i=0; i<P; ++i) {
int idx = (r+i)%P;
if(current_state[idx]) { rem_idx = idx; break; }
}
}
}
if (type == 2 && (add_idx == -1 || rem_idx == -1)) continue;
if (type == 0 && add_idx == -1) continue;
if (type == 1 && rem_idx == -1) continue;
// 差分計算
int next_k = current_k;
long long next_m_sum = current_m_sum;
int next_uncov = current_uncov;
if (add_idx != -1) { next_k++; next_m_sum += pool[add_idx].rob.mk; }
if (rem_idx != -1) { next_k--; next_m_sum -= pool[rem_idx].rob.mk; }
// 未被覆数の変化を確認
if (add_idx != -1) {
for (int cell : pool[add_idx].cells) {
if (cov_count[cell] == 0) next_uncov--;
cov_count[cell]++;
}
}
if (rem_idx != -1) {
for (int cell : pool[rem_idx].cells) {
cov_count[cell]--;
if (cov_count[cell] == 0) next_uncov++;
}
}
double next_energy = calc_energy(next_k, next_m_sum, next_uncov);
double delta = next_energy - current_energy;
bool accept = false;
if (delta <= 0) accept = true;
else if (temp > 0) {
// Fast integer-based approximation or direct comparison for SA
// Double division and exp() are very slow.
// Since we just need a probability, we can use a lookup table or just simple math.
if ((double)(rng() % 1000000) / 1000000.0 < exp(-delta / temp)) {
accept = true;
}
}
if (accept) {
current_energy = next_energy;
current_k = next_k;
current_m_sum = next_m_sum;
current_uncov = next_uncov;
if (add_idx != -1) current_state[add_idx] = true;
if (rem_idx != -1) current_state[rem_idx] = false;
if (current_uncov == 0 && current_energy < best_energy) {
best_energy = current_energy;
best_state = current_state;
}
} else {
// ロールバック
if (add_idx != -1) {
for (int cell : pool[add_idx].cells) cov_count[cell]--;
}
if (rem_idx != -1) {
for (int cell : pool[rem_idx].cells) cov_count[cell]++;
}
}
}
Solution sol;
vector<bool> used_initial(N * N, false);
for (int i = 0; i < P; ++i) {
if (best_state[i]) {
Robot rob = pool[i].rob;
int target_cell = -1;
for (int cell : pool[i].cells) {
if (!used_initial[cell]) {
target_cell = cell;
break;
}
}
if (target_cell != -1) {
used_initial[target_cell] = true;
rob = shift_robot(rob, target_cell / N, target_cell % N, in);
}
sol.robots.push_back(rob);
}
}
sol.calc_cost(in.AK, in.AM);
return sol;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
Input in;
in.read();
Timer timer;
mt19937 rng(42);
Solution best_sol = solve_pattern_A(in, rng, timer);
best_sol.print();
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | A - Periodic Patrol Automata (A) |
| ユーザ | mol_626 |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 669397242 |
| コード長 | 16740 Byte |
| 結果 | AC |
| 実行時間 | 1870 ms |
| メモリ | 449216 KiB |
コンパイルエラー
./Main.cpp: In function 'void explore_policy(int, const std::vector<char>&, const std::vector<int>&, const std::vector<char>&, const std::vector<int>&, std::vector<CycleInfo>&, const Input&, std::vector<int>&, std::vector<int>&)':
./Main.cpp:143:24: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
143 | if (visited.size() < V) visited.resize(V);
| ~~~~~~~~~~~~~~~^~~
ジャッジ結果
| セット名 | test_ALL | ||
|---|---|---|---|
| 得点 / 配点 | 669397242 / 15000000000 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| 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 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| test_0000.txt | AC | 1221 ms | 449192 KiB |
| test_0001.txt | AC | 1308 ms | 448004 KiB |
| test_0002.txt | AC | 1249 ms | 447392 KiB |
| test_0003.txt | AC | 1594 ms | 448300 KiB |
| test_0004.txt | AC | 1403 ms | 448084 KiB |
| test_0005.txt | AC | 1379 ms | 447712 KiB |
| test_0006.txt | AC | 1342 ms | 448272 KiB |
| test_0007.txt | AC | 1306 ms | 448236 KiB |
| test_0008.txt | AC | 1437 ms | 448420 KiB |
| test_0009.txt | AC | 1357 ms | 448208 KiB |
| test_0010.txt | AC | 1400 ms | 447832 KiB |
| test_0011.txt | AC | 1284 ms | 448320 KiB |
| test_0012.txt | AC | 1363 ms | 447760 KiB |
| test_0013.txt | AC | 1401 ms | 448388 KiB |
| test_0014.txt | AC | 1429 ms | 448184 KiB |
| test_0015.txt | AC | 1241 ms | 448372 KiB |
| test_0016.txt | AC | 1364 ms | 448176 KiB |
| test_0017.txt | AC | 1222 ms | 448132 KiB |
| test_0018.txt | AC | 1385 ms | 448568 KiB |
| test_0019.txt | AC | 1350 ms | 448188 KiB |
| test_0020.txt | AC | 1282 ms | 448020 KiB |
| test_0021.txt | AC | 1636 ms | 448352 KiB |
| test_0022.txt | AC | 1287 ms | 448236 KiB |
| test_0023.txt | AC | 1241 ms | 448228 KiB |
| test_0024.txt | AC | 1860 ms | 447964 KiB |
| test_0025.txt | AC | 1405 ms | 448520 KiB |
| test_0026.txt | AC | 1350 ms | 448028 KiB |
| test_0027.txt | AC | 1393 ms | 447928 KiB |
| test_0028.txt | AC | 1380 ms | 448328 KiB |
| test_0029.txt | AC | 1230 ms | 448104 KiB |
| test_0030.txt | AC | 1404 ms | 449020 KiB |
| test_0031.txt | AC | 1506 ms | 448052 KiB |
| test_0032.txt | AC | 1302 ms | 448400 KiB |
| test_0033.txt | AC | 1395 ms | 448152 KiB |
| test_0034.txt | AC | 1372 ms | 448392 KiB |
| test_0035.txt | AC | 1216 ms | 447488 KiB |
| test_0036.txt | AC | 1238 ms | 447936 KiB |
| test_0037.txt | AC | 1265 ms | 447952 KiB |
| test_0038.txt | AC | 1253 ms | 448020 KiB |
| test_0039.txt | AC | 1404 ms | 448100 KiB |
| test_0040.txt | AC | 1374 ms | 447660 KiB |
| test_0041.txt | AC | 1728 ms | 448312 KiB |
| test_0042.txt | AC | 1367 ms | 449020 KiB |
| test_0043.txt | AC | 1391 ms | 447864 KiB |
| test_0044.txt | AC | 1365 ms | 447788 KiB |
| test_0045.txt | AC | 1396 ms | 448364 KiB |
| test_0046.txt | AC | 1402 ms | 448304 KiB |
| test_0047.txt | AC | 1371 ms | 448288 KiB |
| test_0048.txt | AC | 1364 ms | 448664 KiB |
| test_0049.txt | AC | 1362 ms | 448236 KiB |
| test_0050.txt | AC | 1692 ms | 448024 KiB |
| test_0051.txt | AC | 1247 ms | 447324 KiB |
| test_0052.txt | AC | 1271 ms | 448084 KiB |
| test_0053.txt | AC | 1472 ms | 448024 KiB |
| test_0054.txt | AC | 1249 ms | 447584 KiB |
| test_0055.txt | AC | 1216 ms | 448232 KiB |
| test_0056.txt | AC | 1374 ms | 449196 KiB |
| test_0057.txt | AC | 1369 ms | 447980 KiB |
| test_0058.txt | AC | 1364 ms | 447956 KiB |
| test_0059.txt | AC | 1337 ms | 448548 KiB |
| test_0060.txt | AC | 1227 ms | 448376 KiB |
| test_0061.txt | AC | 1410 ms | 447988 KiB |
| test_0062.txt | AC | 1325 ms | 448352 KiB |
| test_0063.txt | AC | 1339 ms | 448412 KiB |
| test_0064.txt | AC | 1250 ms | 447728 KiB |
| test_0065.txt | AC | 1286 ms | 448580 KiB |
| test_0066.txt | AC | 1783 ms | 448508 KiB |
| test_0067.txt | AC | 1358 ms | 448556 KiB |
| test_0068.txt | AC | 1239 ms | 448364 KiB |
| test_0069.txt | AC | 1378 ms | 448716 KiB |
| test_0070.txt | AC | 1347 ms | 448540 KiB |
| test_0071.txt | AC | 1350 ms | 447660 KiB |
| test_0072.txt | AC | 1667 ms | 448292 KiB |
| test_0073.txt | AC | 1273 ms | 448208 KiB |
| test_0074.txt | AC | 1345 ms | 448840 KiB |
| test_0075.txt | AC | 1374 ms | 448208 KiB |
| test_0076.txt | AC | 1369 ms | 447692 KiB |
| test_0077.txt | AC | 1377 ms | 447956 KiB |
| test_0078.txt | AC | 1411 ms | 447788 KiB |
| test_0079.txt | AC | 1248 ms | 447932 KiB |
| test_0080.txt | AC | 1266 ms | 448876 KiB |
| test_0081.txt | AC | 1414 ms | 449216 KiB |
| test_0082.txt | AC | 1223 ms | 448884 KiB |
| test_0083.txt | AC | 1353 ms | 448392 KiB |
| test_0084.txt | AC | 1338 ms | 448136 KiB |
| test_0085.txt | AC | 1326 ms | 447892 KiB |
| test_0086.txt | AC | 1452 ms | 448748 KiB |
| test_0087.txt | AC | 1372 ms | 448184 KiB |
| test_0088.txt | AC | 1609 ms | 447984 KiB |
| test_0089.txt | AC | 1388 ms | 448140 KiB |
| test_0090.txt | AC | 1250 ms | 448200 KiB |
| test_0091.txt | AC | 1825 ms | 447760 KiB |
| test_0092.txt | AC | 1222 ms | 448480 KiB |
| test_0093.txt | AC | 1278 ms | 447972 KiB |
| test_0094.txt | AC | 1233 ms | 447780 KiB |
| test_0095.txt | AC | 1369 ms | 448160 KiB |
| test_0096.txt | AC | 1281 ms | 447848 KiB |
| test_0097.txt | AC | 1284 ms | 448672 KiB |
| test_0098.txt | AC | 1249 ms | 447768 KiB |
| test_0099.txt | AC | 1660 ms | 447552 KiB |
| test_0100.txt | AC | 1381 ms | 448264 KiB |
| test_0101.txt | AC | 1359 ms | 447828 KiB |
| test_0102.txt | AC | 1260 ms | 448284 KiB |
| test_0103.txt | AC | 1401 ms | 448976 KiB |
| test_0104.txt | AC | 1267 ms | 447996 KiB |
| test_0105.txt | AC | 1350 ms | 447792 KiB |
| test_0106.txt | AC | 1264 ms | 448024 KiB |
| test_0107.txt | AC | 1524 ms | 448784 KiB |
| test_0108.txt | AC | 1389 ms | 447740 KiB |
| test_0109.txt | AC | 1362 ms | 448332 KiB |
| test_0110.txt | AC | 1257 ms | 448628 KiB |
| test_0111.txt | AC | 1370 ms | 448640 KiB |
| test_0112.txt | AC | 1260 ms | 448200 KiB |
| test_0113.txt | AC | 1236 ms | 448172 KiB |
| test_0114.txt | AC | 1290 ms | 447748 KiB |
| test_0115.txt | AC | 1408 ms | 448328 KiB |
| test_0116.txt | AC | 1436 ms | 448144 KiB |
| test_0117.txt | AC | 1250 ms | 448620 KiB |
| test_0118.txt | AC | 1257 ms | 447912 KiB |
| test_0119.txt | AC | 1367 ms | 448160 KiB |
| test_0120.txt | AC | 1266 ms | 447344 KiB |
| test_0121.txt | AC | 1370 ms | 449008 KiB |
| test_0122.txt | AC | 1251 ms | 448488 KiB |
| test_0123.txt | AC | 1220 ms | 447904 KiB |
| test_0124.txt | AC | 1411 ms | 448164 KiB |
| test_0125.txt | AC | 1435 ms | 448224 KiB |
| test_0126.txt | AC | 1333 ms | 448004 KiB |
| test_0127.txt | AC | 1377 ms | 448984 KiB |
| test_0128.txt | AC | 1245 ms | 447508 KiB |
| test_0129.txt | AC | 1250 ms | 448256 KiB |
| test_0130.txt | AC | 1426 ms | 448200 KiB |
| test_0131.txt | AC | 1357 ms | 448776 KiB |
| test_0132.txt | AC | 1375 ms | 448496 KiB |
| test_0133.txt | AC | 1365 ms | 448224 KiB |
| test_0134.txt | AC | 1287 ms | 448092 KiB |
| test_0135.txt | AC | 1266 ms | 448284 KiB |
| test_0136.txt | AC | 1269 ms | 448368 KiB |
| test_0137.txt | AC | 1289 ms | 447996 KiB |
| test_0138.txt | AC | 1382 ms | 448424 KiB |
| test_0139.txt | AC | 1407 ms | 448148 KiB |
| test_0140.txt | AC | 1256 ms | 448028 KiB |
| test_0141.txt | AC | 1279 ms | 447996 KiB |
| test_0142.txt | AC | 1386 ms | 447712 KiB |
| test_0143.txt | AC | 1662 ms | 448432 KiB |
| test_0144.txt | AC | 1358 ms | 448612 KiB |
| test_0145.txt | AC | 1612 ms | 448108 KiB |
| test_0146.txt | AC | 1611 ms | 448204 KiB |
| test_0147.txt | AC | 1696 ms | 448188 KiB |
| test_0148.txt | AC | 1233 ms | 448400 KiB |
| test_0149.txt | AC | 1870 ms | 448516 KiB |