Submission #1174328
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,n) for(int i = 0; i < (n); i++)
#define sz(c) ((int)c.size())
#define ten(n) ((int)1e##n)
using ll = long long;
template<typename ...> static inline int getchar_unlocked(void) { return getchar(); }
template<typename ...> static inline void putchar_unlocked(int c) { putchar(c); }
#define mygc(c) (c)=getchar_unlocked()
#define mypc(c) putchar_unlocked(c)
void reader(unsigned char & x) { int k, m = 0; x = 0; for (;;) { mygc(k); if (k == '-') { m = 1; break; }if ('0' <= k&&k <= '9') { x = k - '0'; break; } }for (;;) { mygc(k); if (k<'0' || k>'9')break; x = x * 10 + k - '0'; }if (m) x = -x; }
void reader(int& x) { int k, m = 0; x = 0; for (;;) { mygc(k); if (k == '-') { m = 1; break; }if ('0' <= k&&k <= '9') { x = k - '0'; break; } }for (;;) { mygc(k); if (k<'0' || k>'9')break; x = x * 10 + k - '0'; }if (m) x = -x; }
void reader(ll& x) { int k, m = 0; x = 0; for (;;) { mygc(k); if (k == '-') { m = 1; break; }if ('0' <= k&&k <= '9') { x = k - '0'; break; } }for (;;) { mygc(k); if (k<'0' || k>'9')break; x = x * 10 + k - '0'; }if (m) x = -x; }
int reader(char c[]) { int i, s = 0; for (;;) { mygc(i); if (i != ' '&&i != '\n'&&i != '\r'&&i != '\t'&&i != EOF) break; }c[s++] = i; for (;;) { mygc(i); if (i == ' ' || i == '\n' || i == '\r' || i == '\t' || i == EOF) break; c[s++] = i; }c[s] = '\0'; return s; }
int reader(string& c) { int i; for (;;) { mygc(i); if (i != ' '&&i != '\n'&&i != '\r'&&i != '\t'&&i != EOF) break; }c.push_back(i); for (;;) { mygc(i); if (i == ' ' || i == '\n' || i == '\r' || i == '\t' || i == EOF) break; c.push_back(i); }; return sz(c); }
template <class T, class S> void reader(T& x, S& y) { reader(x); reader(y); }
template <class T, class S, class U> void reader(T& x, S& y, U& z) { reader(x); reader(y); reader(z); }
template <class T, class S, class U, class V> void reader(T& x, S& y, U& z, V & w) { reader(x); reader(y); reader(z); reader(w); }
void writer(int x, char c) { int s = 0, m = 0; char f[10]; if (x<0)m = 1, x = -x; while (x)f[s++] = x % 10, x /= 10; if (!s)f[s++] = 0; if (m)mypc('-'); while (s--)mypc(f[s] + '0'); mypc(c); }
void writer(ll x, char c) { int s = 0, m = 0; char f[20]; if (x<0)m = 1, x = -x; while (x)f[s++] = x % 10, x /= 10; if (!s)f[s++] = 0; if (m)mypc('-'); while (s--)mypc(f[s] + '0'); mypc(c); }
void writer(const char c[]) { int i; for (i = 0; c[i] != '\0'; i++)mypc(c[i]); }
void writer(const char x[], char c) { int i; for (i = 0; x[i] != '\0'; i++)mypc(x[i]); mypc(c); }
template<class T> void writerLn(T x) { writer(x, '\n'); }
template<class T, class S> void writerLn(T x, S y) { writer(x, ' '); writer(y, '\n'); }
template<class T, class S, class U> void writerLn(T x, S y, U z) { writer(x, ' '); writer(y, ' '); writer(z, '\n'); }
template<class T> void writerArr(T x[], int n) { if (!n) { mypc('\n'); return; }FOR(i, n - 1)writer(x[i], ' '); writer(x[n - 1], '\n'); }
template<class T> void writerArr(vector<T>& x) { writerArr(x.data(), (int)x.size()); }
template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }
template<class T> T lcm(T a, T b) { return a / gcd(a, b) * b; }
ll mod_pow(ll a, ll n, ll mod) {
ll ret = 1;
ll p = a % mod;
while (n) {
if (n & 1) ret = ret * p % mod;
p = p * p % mod;
n >>= 1;
}
return ret;
}
template<class T> T extgcd(T a, T b, T& x, T& y) { for (T u = y = 1, v = x = 0; a;) { T q = b / a; swap(x -= q * u, u); swap(y -= q * v, v); swap(b -= q * a, a); } return b; }
template<class T> T mod_inv(T a, T m) { T x, y; extgcd(a, m, x, y); return (m + x % m) % m; }
using Pii = pair<int, int>;
using Pll = pair<ll, ll>;
using ull = unsigned long long;
namespace A {
namespace command {
void fill(int i) {
printf("fill %d\n", i + 1);
fflush(stdout);
}
void move(int i, int j) {
printf("move %d %d\n", i+1, j+1);
fflush(stdout);
}
void change(int i) {
printf("change %d\n", i + 1);
fflush(stdout);
}
void pass() {
printf("pass\n");
fflush(stdout);
}
void sell(vector<int>& x) {
printf("sell %d", sz(x));
for (auto a : x) printf(" %d", a + 1);
printf("\n");
fflush(stdout);
}
}
struct state {
unsigned char d, t;
unsigned char c[8];
unsigned char a[8];
state copy() {
state ret;
memcpy(&ret, this, sizeof(ret));
return ret;
}
};
state get_state() {
state r;
reader(r.d, r.t);
FOR(i, 8) reader(r.c[i]);
FOR(i, 8) reader(r.a[i]);
return r;
}
const ll MASK = (1LL << 51) - 1;
ll bucket_flag(state& s) {
ll b = 1;
FOR(i, 8) if (s.a[i]) {
b = (b | (b << s.a[i])) & MASK;
}
return b;
}
int flag_to_score(ll F, int th = 0) {
int scr = 0;
FOR(i, 51) {
if (i < th) continue;
if ((F >> i) & 1) {
scr += i * i;
}
}
return scr;
}
bool charge_maxscore(state& s) {
ll cur_f = bucket_flag(s);
int idx = -1;
FOR(i, 8) {
if (s.a[i] != s.c[i]) {
state st = s.copy();
st.a[i] = s.c[i];
ll n_f = bucket_flag(st);
if (flag_to_score(cur_f) < flag_to_score(n_f)) {
cur_f = n_f;
idx = i;
}
}
}
if (idx != -1) {
command::fill(idx);
return true;
} else {
return false;
}
}
bool try_sell(state& s) {
vector<Pii> vp;
FOR(i, 8) if (s.a[i]) vp.emplace_back(s.a[i], i);
sort(vp.rbegin(), vp.rend());
ll b[9] = {};
b[0] = 1;
FOR(i,sz(vp)) {
int a = vp[i].first;
b[i + 1] = (b[i] | (b[i] << a)) & MASK;
}
vector<int> ans;
int rem = s.d;
for (int i = sz(vp) - 1; i >= 0; i--) {
int a = vp[i].first;
if (rem >= a) {
if (((b[i + 1] >> rem) & 1) && ((b[i] >> (rem - a)) & 1)) {
ans.push_back(vp[i].second);
rem -= a;
}
}
}
if (rem == 0) {
command::sell(ans);
return true;
} else {
return false;
}
}
bool change_if_too_small(state s) {
int sum = 0;
FOR(i, 8) sum += s.c[i];
if (sum >= 50) return false;
int min_idx = -1, v = 100;
for (int i = 0; i < 8; i++) {
if (v > s.c[i]) {
v = s.c[i];
min_idx = i;
}
}
if (min_idx == -1) {
return false;
} else {
command::change(min_idx);
return true;
}
}
void turn(state s) {
const int TH = 30;
if (s.d > TH) {
bool ok = try_sell(s);
if (ok) return;
}
if (s.d <= TH) {
bool changed = change_if_too_small(s);
if (changed) {
return;
}
}
bool charged = charge_maxscore(s);
if (charged) {
return;
}
command::pass();
}
void solve() {
int game = 0;
while (game != 1000) {
state s = get_state();
turn(s);
game++;
}
}
}
namespace B {
int h, w, k, t;
enum MOVE {
U, L, D, R, STOP
};
struct P {
int a, b;
P(int a, int b) : a(a), b(b) {}
bool operator<(const P& r) const {
return tie(a, b) < tie(r.a, r.b);
}
bool operator!=(const P& r) const {
return tie(a, b) != tie(r.a, r.b);
}
};
vector<int> make_sparse(vector<pair<P, int>>& vp, vector<vector<MOVE>>& ans) {
int bd[30][30], nt[30][30];
memset(bd, -1, sizeof(bd));
for (auto& kv : vp) {
bd[kv.first.a][kv.first.b] = kv.second;
}
//上
bool moved = true;
while (moved) {
moved = false;
memcpy(nt, bd, sizeof(bd));
vector<MOVE> cur(k, STOP);
FOR(i, h) FOR(j, w) {
if (i == 0) continue;
if (bd[i][j] != -1) {
if (bd[i - 1][j] == -1) {
swap(nt[i][j], nt[i - 1][j]);
cur[bd[i][j]] = U;
moved = true;
} else {
cur[bd[i][j]] = STOP;
}
}
}
if (moved) {
ans.push_back(cur);
memcpy(bd, nt, sizeof(bd));
}
}
//左
moved = true;
while (moved) {
moved = false;
memcpy(nt, bd, sizeof(bd));
vector<MOVE> cur(k, STOP);
FOR(i, h) FOR(j, w) {
if (j == 0) continue;
if (bd[i][j] != -1) {
if (bd[i][j - 1] == -1) {
swap(nt[i][j], nt[i][j - 1]);
cur[bd[i][j]] = L;
moved = true;
} else {
cur[bd[i][j]] = STOP;
}
}
}
if (moved) {
ans.push_back(cur);
memcpy(bd, nt, sizeof(bd));
}
}
//右上に移動させて、それぞれのcolumnに 15 ずつ並ぶようにする
moved = true;
while (moved) {
moved = false;
memcpy(nt, bd, sizeof(bd));
vector<MOVE> cur(k, STOP);
FOR(i, h) FOR(j, w) {
if (bd[i][j] != -1) {
if (i >= 15) {
if (i > 0 && bd[i - 1][j] == -1 && nt[i - 1][j] == -1) {
swap(nt[i][j], nt[i - 1][j]);
cur[bd[i][j]] = U;
moved = true;
continue;
}
if (j > 0 && bd[i][j - 1] == -1 && nt[i][j - 1] == -1) {
swap(nt[i][j], nt[i][j - 1]);
cur[bd[i][j]] = L;
moved = true;
continue;
}
} else {
if (j < w - 1 && bd[i][j + 1] == -1 && nt[i][j + 1] == -1) {
swap(nt[i][j], nt[i][j + 1]);
cur[bd[i][j]] = R;
moved = true;
continue;
}
if (i > 0 && bd[i - 1][j] == -1 && nt[i - 1][j] == -1) {
swap(nt[i][j], nt[i - 1][j]);
cur[bd[i][j]] = U;
moved = true;
continue;
}
}
}
}
if (moved) {
ans.push_back(cur);
memcpy(bd, nt, sizeof(bd));
}
}
//sparseにする
moved = true;
while (moved) {
moved = false;
memcpy(nt, bd, sizeof(bd));
vector<MOVE> cur(k, STOP);
FOR(j, w) {
int cnt = 0;
FOR(i, h - 1) {
if (bd[i][j] != -1) {
int move_to = cnt * 2;
cnt++;
if (j % 2) move_to++;
if (i == move_to) continue;
if (bd[i + 1][j] == -1) {
swap(nt[i][j], nt[i + 1][j]);
cur[bd[i][j]] = D;
moved = true;
}
}
}
}
if (moved) {
ans.push_back(cur);
memcpy(bd, nt, sizeof(bd));
}
}
vector<int> ret;
FOR(i, h) FOR(j, w) {
if (bd[i][j] != -1) {
ret.push_back(bd[i][j]);
}
}
return ret;
}
void print_ans(vector<vector<MOVE>>& ans) {
printf("%d\n", sz(ans));
for (auto& x : ans) {
for (auto y : x) {
char c = "ULDR-"[y];
putchar(c);
}
puts("");
}
}
void swap_iteration(vector<int>& s,const vector<int>& t, vector<vector<MOVE>>& ans ,int max_step = ten(5)) {
auto to_place = [](int id) {
P ret(id / 15, id % 15 * 2);
if (ret.a % 2 == 1) ret.b++;
return ret;
};
auto to_id = [](int i, int j) {
return i * 15 + j / 2;
};
auto dist = [](const P& l, const P& r) {
return abs(l.a - r.a) + abs(l.b - r.b);
};
const int di[] = { -1, -1, 1, 1 };
const int dj[] = { -1, 1, 1, -1 };
const vector<MOVE> M[] = { { L, U }, { U, R }, { R, D }, { D, L } };
vector<int> ord;
FOR(i, k) ord.push_back(i);
FOR(i, max_step / 2) {
ans.emplace_back(sz(s), STOP);
ans.emplace_back(sz(s), STOP);
max_step -= 2;
random_shuffle(ord.begin(), ord.end());
bool used[450] = {};
auto add_move = [&](int id, int k) {
P from = to_place(id);
int ni = from.a + di[k];
int nj = from.b + dj[k];
int toid = to_id(ni, nj);
auto& p1 = ans[sz(ans) - 2];
auto& p2 = ans[sz(ans) - 1];
p2[s[id]] = M[k][0];
p1[s[id]] = M[k][1];
p2[s[toid]] = M[(k + 2) % 4][0];
p1[s[toid]] = M[(k + 2) % 4][1];
swap(s[id], s[toid]);
used[id] = used[toid] = true;
};
for(auto x: ord) {
if (used[x]) continue;
P to = to_place(x);
P from(-1, -1);
for (int j = 0; j < sz(s); j++) {
if (t[i] == s[j]) {
from = to_place(j);
break;
}
}
int cho = -1;
int d = 100000;
FOR(k, 4) {
int ni = from.a + di[k];
int nj = from.b + dj[k];
if (ni >= 0 && ni < h && nj >= 0 && nj < w) {
int toid = to_id(ni, nj);
if (used[toid]) continue;
P ppp(ni, nj);
int dd = dist(ppp, to);
if (d > dd) {
d = dd;
cho = k;
}
}
}
if (cho == -1) continue;
add_move(to_id(from.a, from.b), cho);
from.a += di[cho];
from.b += dj[cho];
}
}
//FOR(i, 450 - 30) {
// P to = to_place(i);
// P from(-1, -1);
// for (int j = 0; j < sz(s); j++) {
// if (t[i] == s[j]) {
// from = to_place(j);
// break;
// }
// }
// while (from != to && max_step >= 2) {
// int cho = -1;
// int precho = -1;
// int d = 100000;
// FOR(k, 4) {
// int ni = from.a + di[k];
// int nj = from.b + dj[k];
// if (ni >= 0 && ni < h && nj >= 0 && nj < w) {
// P ppp(ni, nj);
// int to_pt = to_id(ni, nj);
// if (to_pt < i) {
// precho = k;
// continue;
// }
// int dd = dist(ppp, to);
// if (d > dd) {
// d = dd;
// cho = k;
// }
// }
// }
// if (cho == -1) {
// cho = precho;
// }
// add_move(to_id(from.a, from.b), cho);
// max_step -= 2;
// from.a += di[cho];
// from.b += dj[cho];
// }
//}
}
void solve() {
reader(h, w, k, t);
vector<pair<P, int>> vp;
vector<pair<P, int>> dst;
FOR(i, k) {
int a, b, c, d; reader(a, b, c, d);
a--; b--; c--; d--;
vp.emplace_back(P(a, b), i);
dst.emplace_back(P(c, d), i);
}
sort(vp.begin(), vp.end());
vector<vector<MOVE>> first_part;
auto st = make_sparse(vp, first_part);
vector<vector<MOVE>> last_part;
auto ed = make_sparse(dst, last_part);
reverse(last_part.begin(), last_part.end());
vector<vector<MOVE>> med_part;
swap_iteration(st, ed, med_part, t - sz(first_part) - sz(last_part));
vector<vector<MOVE>> ans;
for (auto& x : first_part) ans.push_back(x);
for (auto& x : med_part) ans.push_back(x);
//int bd[30][30];
//memset(bd, -1, sizeof(bd));
//vector<P> dbg;
//FOR(i, 450) {
// int a = i / 15;
// int b = i % 15 * 2;
// if (a % 2 == 1) b++;
// bd[a][b] = st[i];
// dbg.emplace_back(a, b);
//}
vector<int> sinv(sz(st));
FOR(i, sz(st)) sinv[st[i]] = i;
vector<int> tinv(sz(st));
FOR(i, sz(st)) tinv[ed[i]] = i;
vector<vector<MOVE>> last_part2;
for (auto& each : last_part) {
last_part2.emplace_back(k);
auto& xx = last_part2.back();
FOR(i, k) {
MOVE y = each[i];
MOVE rev_move;
if (y == D) rev_move = U;
if (y == U) rev_move = D;
if (y == L) rev_move = R;
if (y == R) rev_move = L;
if (y == STOP) rev_move = STOP;
xx[st[tinv[i]]] = rev_move;
}
//const MOVE mm[] = { U, L, D, R };
//const int ddi[] = { -1,0,1,0 };
//const int ddj[] = { 0,-1,0,1 };
//FOR(j, k) {
// FOR(l, 4) {
// if (mm[l] == xx[j]) {
// P from = dbg[j];
// P to (dbg[j].a + ddi[l], dbg[j].b + ddj[l]);
// if (to.a < 0 || to.a >= 30 || to.b < 0 || to.a >= 30) {
// puts("?");
// }
// swap(bd[from.a][from.b], bd[to.a][to.b]);
// dbg[j] = to;
// }
// }
//}
}
for (auto& x : last_part2) ans.push_back(x);
print_ans(ans);
}
}
int main() {
A::solve();
// B::solve();
return 0;
}
Submission Info
Submission Time |
|
Task |
A - 石油王Xの憂鬱 |
User |
math |
Language |
C++14 (GCC 5.4.1) |
Score |
7016999 |
Code Size |
15185 Byte |
Status |
AC |
Exec Time |
42 ms |
Memory |
724 KB |
Judge Result
Set Name |
test_01 |
test_02 |
test_03 |
test_04 |
test_05 |
test_06 |
test_07 |
test_08 |
test_09 |
test_10 |
test_11 |
test_12 |
test_13 |
test_14 |
test_15 |
test_16 |
test_17 |
test_18 |
test_19 |
test_20 |
test_21 |
test_22 |
test_23 |
test_24 |
test_25 |
test_26 |
test_27 |
test_28 |
test_29 |
test_30 |
test_31 |
test_32 |
test_33 |
test_34 |
test_35 |
test_36 |
test_37 |
test_38 |
test_39 |
test_40 |
test_41 |
test_42 |
test_43 |
test_44 |
test_45 |
test_46 |
test_47 |
test_48 |
test_49 |
test_50 |
Score / Max Score |
144013 / 417500 |
140595 / 417500 |
152896 / 417500 |
134613 / 417500 |
144864 / 417500 |
138901 / 417500 |
146960 / 417500 |
129996 / 417500 |
138811 / 417500 |
149346 / 417500 |
141005 / 417500 |
144293 / 417500 |
148808 / 417500 |
148885 / 417500 |
135785 / 417500 |
148151 / 417500 |
133339 / 417500 |
139334 / 417500 |
150508 / 417500 |
137794 / 417500 |
138287 / 417500 |
141038 / 417500 |
129295 / 417500 |
139223 / 417500 |
139245 / 417500 |
139371 / 417500 |
144985 / 417500 |
143122 / 417500 |
140792 / 417500 |
138418 / 417500 |
146642 / 417500 |
133874 / 417500 |
135548 / 417500 |
140809 / 417500 |
143160 / 417500 |
142933 / 417500 |
138767 / 417500 |
135214 / 417500 |
137033 / 417500 |
137519 / 417500 |
135193 / 417500 |
142187 / 417500 |
137279 / 417500 |
137709 / 417500 |
141525 / 417500 |
138929 / 417500 |
140603 / 417500 |
132212 / 417500 |
138692 / 417500 |
138498 / 417500 |
Status |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set Name |
Test Cases |
test_01 |
subtask_01_01.txt |
test_02 |
subtask_01_02.txt |
test_03 |
subtask_01_03.txt |
test_04 |
subtask_01_04.txt |
test_05 |
subtask_01_05.txt |
test_06 |
subtask_01_06.txt |
test_07 |
subtask_01_07.txt |
test_08 |
subtask_01_08.txt |
test_09 |
subtask_01_09.txt |
test_10 |
subtask_01_10.txt |
test_11 |
subtask_01_11.txt |
test_12 |
subtask_01_12.txt |
test_13 |
subtask_01_13.txt |
test_14 |
subtask_01_14.txt |
test_15 |
subtask_01_15.txt |
test_16 |
subtask_01_16.txt |
test_17 |
subtask_01_17.txt |
test_18 |
subtask_01_18.txt |
test_19 |
subtask_01_19.txt |
test_20 |
subtask_01_20.txt |
test_21 |
subtask_01_21.txt |
test_22 |
subtask_01_22.txt |
test_23 |
subtask_01_23.txt |
test_24 |
subtask_01_24.txt |
test_25 |
subtask_01_25.txt |
test_26 |
subtask_01_26.txt |
test_27 |
subtask_01_27.txt |
test_28 |
subtask_01_28.txt |
test_29 |
subtask_01_29.txt |
test_30 |
subtask_01_30.txt |
test_31 |
subtask_01_31.txt |
test_32 |
subtask_01_32.txt |
test_33 |
subtask_01_33.txt |
test_34 |
subtask_01_34.txt |
test_35 |
subtask_01_35.txt |
test_36 |
subtask_01_36.txt |
test_37 |
subtask_01_37.txt |
test_38 |
subtask_01_38.txt |
test_39 |
subtask_01_39.txt |
test_40 |
subtask_01_40.txt |
test_41 |
subtask_01_41.txt |
test_42 |
subtask_01_42.txt |
test_43 |
subtask_01_43.txt |
test_44 |
subtask_01_44.txt |
test_45 |
subtask_01_45.txt |
test_46 |
subtask_01_46.txt |
test_47 |
subtask_01_47.txt |
test_48 |
subtask_01_48.txt |
test_49 |
subtask_01_49.txt |
test_50 |
subtask_01_50.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask_01_01.txt |
AC |
38 ms |
716 KB |
subtask_01_02.txt |
AC |
40 ms |
720 KB |
subtask_01_03.txt |
AC |
39 ms |
720 KB |
subtask_01_04.txt |
AC |
38 ms |
724 KB |
subtask_01_05.txt |
AC |
36 ms |
712 KB |
subtask_01_06.txt |
AC |
38 ms |
720 KB |
subtask_01_07.txt |
AC |
41 ms |
720 KB |
subtask_01_08.txt |
AC |
42 ms |
720 KB |
subtask_01_09.txt |
AC |
39 ms |
720 KB |
subtask_01_10.txt |
AC |
39 ms |
720 KB |
subtask_01_11.txt |
AC |
37 ms |
720 KB |
subtask_01_12.txt |
AC |
38 ms |
724 KB |
subtask_01_13.txt |
AC |
37 ms |
592 KB |
subtask_01_14.txt |
AC |
39 ms |
720 KB |
subtask_01_15.txt |
AC |
38 ms |
720 KB |
subtask_01_16.txt |
AC |
38 ms |
720 KB |
subtask_01_17.txt |
AC |
39 ms |
720 KB |
subtask_01_18.txt |
AC |
39 ms |
720 KB |
subtask_01_19.txt |
AC |
39 ms |
716 KB |
subtask_01_20.txt |
AC |
39 ms |
720 KB |
subtask_01_21.txt |
AC |
37 ms |
716 KB |
subtask_01_22.txt |
AC |
40 ms |
592 KB |
subtask_01_23.txt |
AC |
41 ms |
724 KB |
subtask_01_24.txt |
AC |
37 ms |
716 KB |
subtask_01_25.txt |
AC |
38 ms |
664 KB |
subtask_01_26.txt |
AC |
38 ms |
716 KB |
subtask_01_27.txt |
AC |
38 ms |
720 KB |
subtask_01_28.txt |
AC |
37 ms |
720 KB |
subtask_01_29.txt |
AC |
39 ms |
592 KB |
subtask_01_30.txt |
AC |
39 ms |
720 KB |
subtask_01_31.txt |
AC |
39 ms |
720 KB |
subtask_01_32.txt |
AC |
41 ms |
720 KB |
subtask_01_33.txt |
AC |
40 ms |
720 KB |
subtask_01_34.txt |
AC |
38 ms |
720 KB |
subtask_01_35.txt |
AC |
41 ms |
592 KB |
subtask_01_36.txt |
AC |
37 ms |
716 KB |
subtask_01_37.txt |
AC |
39 ms |
720 KB |
subtask_01_38.txt |
AC |
41 ms |
724 KB |
subtask_01_39.txt |
AC |
40 ms |
724 KB |
subtask_01_40.txt |
AC |
39 ms |
716 KB |
subtask_01_41.txt |
AC |
40 ms |
720 KB |
subtask_01_42.txt |
AC |
40 ms |
720 KB |
subtask_01_43.txt |
AC |
38 ms |
720 KB |
subtask_01_44.txt |
AC |
35 ms |
592 KB |
subtask_01_45.txt |
AC |
38 ms |
720 KB |
subtask_01_46.txt |
AC |
40 ms |
720 KB |
subtask_01_47.txt |
AC |
41 ms |
656 KB |
subtask_01_48.txt |
AC |
39 ms |
720 KB |
subtask_01_49.txt |
AC |
39 ms |
716 KB |
subtask_01_50.txt |
AC |
41 ms |
720 KB |