Please sign in first.
Submission #65951220
Source Code Expand
// Your code here
#include <iostream>
#include <vector>
#include <string>
#include <numeric>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <chrono> // For Timer and random seed
// Timer for managing time limits
class Timer {
public:
Timer() : start_time_(std::chrono::high_resolution_clock::now()) {}
void reset() {
start_time_ = std::chrono::high_resolution_clock::now();
}
double get_elapsed_seconds() const {
auto now = std::chrono::high_resolution_clock::now();
return std::chrono::duration<double>(now - start_time_).count();
}
private:
std::chrono::time_point<std::chrono::high_resolution_clock> start_time_;
};
// Parameters (fixed for the problem)
const int M_STATES_FIXED = 12;
const int MAX_S_LEN_FIXED = 12;
// Structure to hold problem input
struct ProblemInput {
std::vector<std::string> S;
std::vector<int> P;
int N, M;
double L;
void read() {
std::cin >> N >> M >> L;
S.resize(N);
P.resize(N);
for (int i = 0; i < N; ++i) {
std::cin >> S[i] >> P[i];
}
}
};
// Solution structure
struct Solution {
std::vector<char> C;
std::vector<std::vector<int>> A;
Solution() {
C.resize(M_STATES_FIXED);
A.resize(M_STATES_FIXED, std::vector<int>(M_STATES_FIXED));
}
Solution(int M_states) {
C.resize(M_states);
A.resize(M_states, std::vector<int>(M_states));
}
void print() const {
std::cout << std::fixed << std::setprecision(0);
for (size_t i = 0; i < C.size(); ++i) {
std::cout << C[i];
for (size_t j = 0; j < A[i].size(); ++j) {
std::cout << " " << A[i][j];
}
std::cout << std::endl;
}
}
};
// Score evaluation
class ScoreCalculator {
public:
const ProblemInput& input;
std::vector<double> stationary_dist_1;
std::vector<double> stationary_dist_2; // For ping-pong buffer
std::vector<std::vector<double>> A_double;
std::vector<std::vector<double>> p_sk_dp;
ScoreCalculator(const ProblemInput& prob_input) : input(prob_input) {
stationary_dist_1.resize(input.M);
stationary_dist_2.resize(input.M);
A_double.resize(input.M, std::vector<double>(input.M));
p_sk_dp.resize(MAX_S_LEN_FIXED, std::vector<double>(input.M));
}
double calculate_score(const Solution& sol) {
for (int i = 0; i < input.M; ++i) {
for (int j = 0; j < input.M; ++j) {
A_double[i][j] = sol.A[i][j] / 100.0;
}
}
std::vector<double>* pi_current_ptr = &stationary_dist_1;
std::vector<double>* pi_next_ptr = &stationary_dist_2;
std::fill(pi_current_ptr->begin(), pi_current_ptr->end(), 0.0);
if (input.M > 0) {
(*pi_current_ptr)[0] = 1.0;
} else {
return 0.0;
}
const int POWER_ITERATIONS = 100;
for (int iter = 0; iter < POWER_ITERATIONS; ++iter) {
std::fill(pi_next_ptr->begin(), pi_next_ptr->end(), 0.0);
for (int j = 0; j < input.M; ++j) {
double val_for_pi_j_next = 0.0;
for (int i = 0; i < input.M; ++i) {
val_for_pi_j_next += (*pi_current_ptr)[i] * A_double[i][j];
}
(*pi_next_ptr)[j] = val_for_pi_j_next;
}
std::swap(pi_current_ptr, pi_next_ptr);
}
double total_expected_preference = 0;
for (int k = 0; k < input.N; ++k) {
const std::string& Sk = input.S[k];
int Sk_len = Sk.length();
if (Sk_len == 0) continue;
for (int u = 0; u < input.M; ++u) {
if (sol.C[u] == Sk[0]) {
p_sk_dp[0][u] = (*pi_current_ptr)[u];
} else {
p_sk_dp[0][u] = 0.0;
}
}
for (int char_idx = 0; char_idx < Sk_len - 1; ++char_idx) {
for (int v_next_state = 0; v_next_state < input.M; ++v_next_state) {
p_sk_dp[char_idx+1][v_next_state] = 0.0;
if (sol.C[v_next_state] == Sk[char_idx+1]) {
double sum_prev_paths = 0;
for (int u_curr_state = 0; u_curr_state < input.M; ++u_curr_state) {
sum_prev_paths += p_sk_dp[char_idx][u_curr_state] * A_double[u_curr_state][v_next_state];
}
p_sk_dp[char_idx+1][v_next_state] = sum_prev_paths;
}
}
}
double prob_Sk_starts = 0;
for (int u = 0; u < input.M; ++u) {
prob_Sk_starts += p_sk_dp[Sk_len-1][u];
}
double lambda_k = input.L * prob_Sk_starts;
double Q_k;
if (prob_Sk_starts < 1e-100 || lambda_k < 1e-9) {
Q_k = lambda_k;
} else if (lambda_k > 30) {
Q_k = 1.0;
} else {
Q_k = -std::expm1(-lambda_k);
}
if (std::isnan(Q_k) || Q_k < 0) Q_k = 0;
if (Q_k > 1.0) Q_k = 1.0;
total_expected_preference += input.P[k] * Q_k;
}
return total_expected_preference;
}
};
struct Random {
unsigned int x, y, z, w;
Random(unsigned int seed) : x(seed), y(362436069), z(521288629), w(88675123) {
if (seed == 0) x = 123456789;
}
unsigned int next_int() {
unsigned int t = x ^ (x << 11);
x = y; y = z; z = w;
w = (w ^ (w >> 19)) ^ (t ^ (t >> 8));
return w;
}
double next_double() { // [0,1)
return static_cast<double>(next_int()) / 4294967296.0; // 2^32
}
int next_int_range(int min_val, int max_val) { // [min_val, max_val]
if (min_val > max_val) return min_val;
return min_val + next_int() % (max_val - min_val + 1);
}
};
void solve(const ProblemInput& input, Solution& best_sol, double& best_score, Random& rnd, const Timer& overall_timer, double time_limit) {
Solution current_sol(input.M);
ScoreCalculator score_calc(input);
double current_score_val = 0.0; // FIX: Declare current_score_val
if (input.M > 0) {
int states_per_char_bucket = std::max(1, input.M / 6);
for (int i = 0; i < input.M; ++i) {
current_sol.C[i] = 'a' + ((i / states_per_char_bucket) % 6) ;
}
}
std::vector<std::vector<double>> W(input.M, std::vector<double>(input.M, 0.0));
if (input.M > 0) {
for (int u = 0; u < input.M; ++u) {
for (int v = 0; v < input.M; ++v) {
double sum_score_weights = 1e-9;
for (int k_idx = 0; k_idx < input.N; ++k_idx) {
const auto& Sk = input.S[k_idx];
for (size_t char_j = 0; char_j < Sk.length() - 1; ++char_j) {
if (current_sol.C[u] == Sk[char_j] && current_sol.C[v] == Sk[char_j+1]) {
sum_score_weights += input.P[k_idx];
}
}
}
W[u][v] = sum_score_weights;
}
}
}
for (int i = 0; i < input.M; ++i) {
double row_sum_W = 0;
for (int j = 0; j < input.M; ++j) {
row_sum_W += W[i][j];
}
if (input.M == 0) continue;
if (row_sum_W < 1e-8) {
int base_prob = 100 / input.M;
int remainder = 100 % input.M;
for (int j = 0; j < input.M; ++j) current_sol.A[i][j] = base_prob;
for (int j = 0; j < remainder; ++j) current_sol.A[i][j]++;
} else {
int current_row_sum_A = 0;
for (int j = 0; j < input.M; ++j) {
current_sol.A[i][j] = static_cast<int>(std::round(100.0 * W[i][j] / row_sum_W));
current_row_sum_A += current_sol.A[i][j];
}
int diff = 100 - current_row_sum_A;
std::vector<std::pair<double, int>> candidates_W_for_adjust;
for(int j=0; j<input.M; ++j) candidates_W_for_adjust.push_back({W[i][j], j});
if (diff > 0) std::sort(candidates_W_for_adjust.rbegin(), candidates_W_for_adjust.rend());
else std::sort(candidates_W_for_adjust.begin(), candidates_W_for_adjust.end());
int initial_abs_diff = std::abs(diff);
for (int k_iter = 0; k_iter < initial_abs_diff; ++k_iter) {
if (diff == 0) break;
int target_j = candidates_W_for_adjust[k_iter % input.M].second;
if (diff > 0) {
if (current_sol.A[i][target_j] < 100) { current_sol.A[i][target_j]++; diff--; }
} else {
if (current_sol.A[i][target_j] > 0) { current_sol.A[i][target_j]--; diff++; }
}
}
current_row_sum_A = 0; for(int val_A : current_sol.A[i]) current_row_sum_A += val_A;
diff = 100 - current_row_sum_A;
if (diff != 0) {
int c_idx = rnd.next_int_range(0, input.M - 1);
for(int k_fix = 0; k_fix < input.M * 2 && diff != 0; ++k_fix) {
if (diff > 0) { if (current_sol.A[i][c_idx] < 100) {current_sol.A[i][c_idx]++; diff--;} }
else { if (current_sol.A[i][c_idx] > 0) {current_sol.A[i][c_idx]--; diff++;} }
c_idx = (c_idx + 1) % input.M;
}
}
}
}
if (input.M > 0) {
best_sol = current_sol;
current_score_val = score_calc.calculate_score(current_sol); // Evaluate score of current_sol (not best_sol)
best_score = current_score_val;
} else {
best_score = 0.0;
}
double initial_temp = 5000.0;
if (best_score > 1.0) initial_temp = std::max(100.0, best_score * 0.05);
else initial_temp = std::max(100.0, initial_temp);
double final_temp = 0.1;
while(overall_timer.get_elapsed_seconds() < time_limit) {
if (input.M == 0) break;
double progress = overall_timer.get_elapsed_seconds() / time_limit;
double temp = initial_temp * std::pow(final_temp / initial_temp, progress * progress * progress);
if (temp < final_temp) temp = final_temp;
Solution next_sol = current_sol;
double move_type_rand = rnd.next_double();
if (move_type_rand < 0.1) {
int k_state = rnd.next_int_range(0, input.M - 1);
char old_Ck = next_sol.C[k_state];
char new_Ck = 'a' + rnd.next_int_range(0, 5);
if (new_Ck == old_Ck && ('f' - 'a') > 0) {
new_Ck = 'a' + ( (old_Ck - 'a' + 1 + rnd.next_int_range(0,4) ) % 6 );
}
next_sol.C[k_state] = new_Ck;
} else {
int i_state = rnd.next_int_range(0, input.M - 1);
int j1 = rnd.next_int_range(0, input.M - 1);
int j2 = rnd.next_int_range(0, input.M - 1);
if (j1 == j2) {
if (input.M == 1) continue;
j2 = (j1 + 1 + rnd.next_int_range(0, input.M-2)) % input.M;
}
int max_delta_fwd = std::min({20, next_sol.A[i_state][j1], 100 - next_sol.A[i_state][j2]});
int max_delta_bwd = std::min({20, next_sol.A[i_state][j2], 100 - next_sol.A[i_state][j1]});
if (max_delta_fwd <= 0 && max_delta_bwd <= 0) continue;
int delta;
bool forward_move = (max_delta_fwd > 0 && (max_delta_bwd <= 0 || rnd.next_double() < 0.5));
if (forward_move) {
delta = rnd.next_int_range(1, max_delta_fwd);
next_sol.A[i_state][j1] -= delta;
next_sol.A[i_state][j2] += delta;
} else if (max_delta_bwd > 0) {
delta = rnd.next_int_range(1, max_delta_bwd);
next_sol.A[i_state][j2] -= delta;
next_sol.A[i_state][j1] += delta;
} else {
continue;
}
}
double next_score_eval = score_calc.calculate_score(next_sol);
if (next_score_eval > current_score_val || rnd.next_double() < std::exp((next_score_eval - current_score_val) / temp) ) {
current_sol = next_sol;
current_score_val = next_score_eval;
if (current_score_val > best_score) {
best_score = current_score_val;
best_sol = current_sol;
}
}
}
}
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
Timer overall_timer;
unsigned int seed = static_cast<unsigned int>(std::chrono::system_clock::now().time_since_epoch().count());
Random rnd(seed);
ProblemInput input_data;
input_data.read();
Solution best_sol_overall(input_data.M);
double max_score_overall = 0.0;
double time_limit_seconds = 1.95;
if (input_data.L == 0 || input_data.M == 0) {
time_limit_seconds = 0.01;
}
solve(input_data, best_sol_overall, max_score_overall, rnd, overall_timer, time_limit_seconds);
best_sol_overall.print();
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Lovely Language Model |
| User | fishylene |
| Language | C++ 23 (gcc 12.2) |
| Score | 4935142 |
| Code Size | 13420 Byte |
| Status | AC |
| Exec Time | 1951 ms |
| Memory | 4028 KiB |
Judge Result
| Set Name | test_ALL | ||
|---|---|---|---|
| Score / Max Score | 4935142 / 150000000 | ||
| 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 | 1951 ms | 4012 KiB |
| test_0001.txt | AC | 1951 ms | 3900 KiB |
| test_0002.txt | AC | 1951 ms | 3988 KiB |
| test_0003.txt | AC | 1951 ms | 3984 KiB |
| test_0004.txt | AC | 1951 ms | 3888 KiB |
| test_0005.txt | AC | 1951 ms | 3996 KiB |
| test_0006.txt | AC | 1951 ms | 3892 KiB |
| test_0007.txt | AC | 1951 ms | 3864 KiB |
| test_0008.txt | AC | 1951 ms | 4016 KiB |
| test_0009.txt | AC | 1951 ms | 3872 KiB |
| test_0010.txt | AC | 1951 ms | 3988 KiB |
| test_0011.txt | AC | 1951 ms | 3812 KiB |
| test_0012.txt | AC | 1951 ms | 3988 KiB |
| test_0013.txt | AC | 1951 ms | 3924 KiB |
| test_0014.txt | AC | 1951 ms | 3792 KiB |
| test_0015.txt | AC | 1951 ms | 3996 KiB |
| test_0016.txt | AC | 1951 ms | 3900 KiB |
| test_0017.txt | AC | 1951 ms | 4012 KiB |
| test_0018.txt | AC | 1951 ms | 3896 KiB |
| test_0019.txt | AC | 1951 ms | 3900 KiB |
| test_0020.txt | AC | 1951 ms | 3816 KiB |
| test_0021.txt | AC | 1951 ms | 3892 KiB |
| test_0022.txt | AC | 1951 ms | 4016 KiB |
| test_0023.txt | AC | 1951 ms | 3960 KiB |
| test_0024.txt | AC | 1951 ms | 3972 KiB |
| test_0025.txt | AC | 1951 ms | 3984 KiB |
| test_0026.txt | AC | 1951 ms | 3900 KiB |
| test_0027.txt | AC | 1951 ms | 4012 KiB |
| test_0028.txt | AC | 1951 ms | 3900 KiB |
| test_0029.txt | AC | 1951 ms | 3792 KiB |
| test_0030.txt | AC | 1951 ms | 3904 KiB |
| test_0031.txt | AC | 1951 ms | 3924 KiB |
| test_0032.txt | AC | 1951 ms | 3988 KiB |
| test_0033.txt | AC | 1951 ms | 4016 KiB |
| test_0034.txt | AC | 1951 ms | 4016 KiB |
| test_0035.txt | AC | 1951 ms | 4016 KiB |
| test_0036.txt | AC | 1951 ms | 4016 KiB |
| test_0037.txt | AC | 1951 ms | 4012 KiB |
| test_0038.txt | AC | 1951 ms | 3792 KiB |
| test_0039.txt | AC | 1951 ms | 3792 KiB |
| test_0040.txt | AC | 1951 ms | 3900 KiB |
| test_0041.txt | AC | 1951 ms | 3756 KiB |
| test_0042.txt | AC | 1951 ms | 3896 KiB |
| test_0043.txt | AC | 1951 ms | 4028 KiB |
| test_0044.txt | AC | 1951 ms | 3872 KiB |
| test_0045.txt | AC | 1951 ms | 3908 KiB |
| test_0046.txt | AC | 1951 ms | 3960 KiB |
| test_0047.txt | AC | 1951 ms | 3900 KiB |
| test_0048.txt | AC | 1951 ms | 3860 KiB |
| test_0049.txt | AC | 1951 ms | 4016 KiB |
| test_0050.txt | AC | 1951 ms | 4012 KiB |
| test_0051.txt | AC | 1951 ms | 3868 KiB |
| test_0052.txt | AC | 1951 ms | 3872 KiB |
| test_0053.txt | AC | 1951 ms | 3924 KiB |
| test_0054.txt | AC | 1951 ms | 3984 KiB |
| test_0055.txt | AC | 1951 ms | 4012 KiB |
| test_0056.txt | AC | 1951 ms | 3972 KiB |
| test_0057.txt | AC | 1951 ms | 3988 KiB |
| test_0058.txt | AC | 1951 ms | 3920 KiB |
| test_0059.txt | AC | 1951 ms | 4012 KiB |
| test_0060.txt | AC | 1951 ms | 3976 KiB |
| test_0061.txt | AC | 1951 ms | 3992 KiB |
| test_0062.txt | AC | 1951 ms | 3792 KiB |
| test_0063.txt | AC | 1951 ms | 3960 KiB |
| test_0064.txt | AC | 1951 ms | 3900 KiB |
| test_0065.txt | AC | 1951 ms | 3960 KiB |
| test_0066.txt | AC | 1951 ms | 4012 KiB |
| test_0067.txt | AC | 1951 ms | 4016 KiB |
| test_0068.txt | AC | 1951 ms | 3972 KiB |
| test_0069.txt | AC | 1951 ms | 3872 KiB |
| test_0070.txt | AC | 1951 ms | 3992 KiB |
| test_0071.txt | AC | 1951 ms | 3992 KiB |
| test_0072.txt | AC | 1951 ms | 3976 KiB |
| test_0073.txt | AC | 1951 ms | 3976 KiB |
| test_0074.txt | AC | 1951 ms | 3992 KiB |
| test_0075.txt | AC | 1951 ms | 3996 KiB |
| test_0076.txt | AC | 1951 ms | 3980 KiB |
| test_0077.txt | AC | 1951 ms | 3956 KiB |
| test_0078.txt | AC | 1951 ms | 4012 KiB |
| test_0079.txt | AC | 1951 ms | 3896 KiB |
| test_0080.txt | AC | 1951 ms | 3856 KiB |
| test_0081.txt | AC | 1951 ms | 3968 KiB |
| test_0082.txt | AC | 1951 ms | 3960 KiB |
| test_0083.txt | AC | 1951 ms | 4016 KiB |
| test_0084.txt | AC | 1951 ms | 3904 KiB |
| test_0085.txt | AC | 1951 ms | 3860 KiB |
| test_0086.txt | AC | 1951 ms | 4012 KiB |
| test_0087.txt | AC | 1951 ms | 3956 KiB |
| test_0088.txt | AC | 1951 ms | 4012 KiB |
| test_0089.txt | AC | 1951 ms | 4016 KiB |
| test_0090.txt | AC | 1951 ms | 3968 KiB |
| test_0091.txt | AC | 1951 ms | 3984 KiB |
| test_0092.txt | AC | 1951 ms | 3808 KiB |
| test_0093.txt | AC | 1951 ms | 3908 KiB |
| test_0094.txt | AC | 1951 ms | 3788 KiB |
| test_0095.txt | AC | 1951 ms | 3792 KiB |
| test_0096.txt | AC | 1951 ms | 3872 KiB |
| test_0097.txt | AC | 1951 ms | 3816 KiB |
| test_0098.txt | AC | 1951 ms | 3996 KiB |
| test_0099.txt | AC | 1951 ms | 4012 KiB |
| test_0100.txt | AC | 1951 ms | 3976 KiB |
| test_0101.txt | AC | 1951 ms | 3908 KiB |
| test_0102.txt | AC | 1951 ms | 4012 KiB |
| test_0103.txt | AC | 1951 ms | 3796 KiB |
| test_0104.txt | AC | 1951 ms | 3792 KiB |
| test_0105.txt | AC | 1951 ms | 3908 KiB |
| test_0106.txt | AC | 1951 ms | 3892 KiB |
| test_0107.txt | AC | 1951 ms | 3892 KiB |
| test_0108.txt | AC | 1951 ms | 3984 KiB |
| test_0109.txt | AC | 1951 ms | 3984 KiB |
| test_0110.txt | AC | 1951 ms | 3972 KiB |
| test_0111.txt | AC | 1951 ms | 3872 KiB |
| test_0112.txt | AC | 1951 ms | 3920 KiB |
| test_0113.txt | AC | 1951 ms | 3972 KiB |
| test_0114.txt | AC | 1951 ms | 4012 KiB |
| test_0115.txt | AC | 1951 ms | 3996 KiB |
| test_0116.txt | AC | 1951 ms | 4008 KiB |
| test_0117.txt | AC | 1951 ms | 3900 KiB |
| test_0118.txt | AC | 1951 ms | 3996 KiB |
| test_0119.txt | AC | 1951 ms | 4012 KiB |
| test_0120.txt | AC | 1951 ms | 3792 KiB |
| test_0121.txt | AC | 1951 ms | 3872 KiB |
| test_0122.txt | AC | 1951 ms | 4012 KiB |
| test_0123.txt | AC | 1951 ms | 3872 KiB |
| test_0124.txt | AC | 1951 ms | 3972 KiB |
| test_0125.txt | AC | 1951 ms | 3976 KiB |
| test_0126.txt | AC | 1951 ms | 4008 KiB |
| test_0127.txt | AC | 1951 ms | 4016 KiB |
| test_0128.txt | AC | 1951 ms | 3984 KiB |
| test_0129.txt | AC | 1951 ms | 3956 KiB |
| test_0130.txt | AC | 1951 ms | 3988 KiB |
| test_0131.txt | AC | 1951 ms | 3900 KiB |
| test_0132.txt | AC | 1951 ms | 3960 KiB |
| test_0133.txt | AC | 1951 ms | 3900 KiB |
| test_0134.txt | AC | 1951 ms | 3960 KiB |
| test_0135.txt | AC | 1951 ms | 3868 KiB |
| test_0136.txt | AC | 1951 ms | 3896 KiB |
| test_0137.txt | AC | 1951 ms | 3868 KiB |
| test_0138.txt | AC | 1951 ms | 3976 KiB |
| test_0139.txt | AC | 1951 ms | 4020 KiB |
| test_0140.txt | AC | 1951 ms | 3980 KiB |
| test_0141.txt | AC | 1951 ms | 3972 KiB |
| test_0142.txt | AC | 1951 ms | 3956 KiB |
| test_0143.txt | AC | 1951 ms | 3868 KiB |
| test_0144.txt | AC | 1951 ms | 3892 KiB |
| test_0145.txt | AC | 1951 ms | 4016 KiB |
| test_0146.txt | AC | 1951 ms | 3900 KiB |
| test_0147.txt | AC | 1951 ms | 4016 KiB |
| test_0148.txt | AC | 1951 ms | 4024 KiB |
| test_0149.txt | AC | 1951 ms | 3992 KiB |