Submission #566538

# Submission time Handle Problem Language Result Execution time Memory
566538 2022-05-22T11:37:11 Z kartel Fountain Parks (IOI21_parks) C++17
100 / 100
2829 ms 162752 KB
#include <bits/stdc++.h>
//#include "grader.cpp"
#include "ext/pb_ds/assoc_container.hpp"
#include "parks.h"
#define F first
#define S second
#define pb push_back
#define sz(x) (int)x.size()
#define el "\n"
#define all(x) (x).begin(), (x).end()

#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-O3")
#pragma GCC optimize("Ofast")

using namespace std;
using namespace __gnu_pbds;
typedef long long ll;

const int N = 5e5 + 500;

mt19937 rnd(time(0));

const int steps[4][2] = {{0, 2}, {2, 0}, {0, -2}, {-2, 0}};
const int dsteps[4][2] = {{1, 1}, {1, -1}, {-1, 1}, {-1, -1}};

pair <int, int> road[10][10];

pair <int, int> block[N * 2];
int pr[N];
int cmp[2 * N], to[2 * N];
vector <int> g[2 * N], gr[2 * N], ord;
bool mk[2 * N];

int f(int v) {return (pr[v] == v ? v : pr[v] = f(pr[v]));}
void link(int v, int u) {
    v = f(v); u = f(u);
    if (v == u) {
        return;
    }
    pr[u] = v;
}

int nt(int x) {return (x < N ? x + N : x - N);}

void add_impl(int a, int b) {
    int na = nt(a), nb = nt(b);

    g[na].pb(b); gr[b].pb(na);
    g[nb].pb(a); gr[a].pb(nb);
}

void dfs(int v) {
    mk[v] = 1;
    for (auto &u : g[v]) {
        if (mk[u]) {
            continue;
        }
        dfs(u);
    }
    ord.pb(v);
}
vector <pair <int, int> > pts;

void dfsd(int v) {
    mk[v] = 1;
    for (auto &u : g[v]) {
        if (mk[u]) {
            continue;
        }
        int dx = pts[v].F - pts[u].F;
        int dy = pts[v].S - pts[u].S;
        block[u] = road[dx + 4][dy + 4];
        dfsd(u);
    }
}

inline ll geth(int a, int b) {return ((ll)a << 20) + b;}

void get_erased_2x2(vector <int> &x, vector <int> &y, map<ll, int> &del) {
    map <ll, int> cnt, who;

    for (int i = 0; i < sz(x); i++) {
        who[geth(x[i], y[i])] = i;
        for (int j = 0; j < 4; j++) {
            int cx = x[i] + dsteps[j][0];
            int cy = y[i] + dsteps[j][1];

            cnt[geth(cx, cy)]++;
            if (cnt[geth(cx, cy)] == 4) {
                pts.pb({cx, cy});
            }
        }
    }
    sort(all(pts));
    cnt.clear();
    int ptr = 0;
    for (auto &[x, y] : pts) {
        cnt[geth(x, y)] = ptr++;
    }

    ptr = 0;
    for (auto &[x, y] : pts) {
        int par = (x / 2 + y / 2) % 2;
        for (int i = 0; i < 2; i++) {
            int cx = x + steps[i * 2 + par][0];
            int cy = y + steps[i * 2 + par][1];

            if (cnt.find(geth(cx, cy)) == cnt.end()) {
                continue;
            }
            g[cnt[geth(cx, cy)]].pb(ptr);
        }
        ptr++;
    }

    queue <int> q;
    for (int i = 0; i < sz(pts); i++) {
        if (mk[i]) {
            continue;
        }

        int par = (pts[i].F / 2 + pts[i].S / 2) & 1;
        if (par & 1) {
            block[i] = road[-2 + 4][0 + 4];
        } else {
            block[i] = road[0 + 4][-2 + 4];
        }
        q.push(i); mk[i] = 1;
        while (sz(q)) {
            int v = q.front(); q.pop();

            for (auto &u : g[v]) {
                if (mk[u]) {
                    continue;
                }
                int dx = pts[v].F - pts[u].F;
                int dy = pts[v].S - pts[u].S;
                block[u] = road[dx + 4][dy + 4];
                q.push(u);
                mk[u] = 1;
            }
        }
    }

    for (int i = 0; i < sz(pts); i++) {
        auto &[x, y] = pts[i];

        auto &[a, b] = block[i];
        int v = who[geth(x + dsteps[a][0], y + dsteps[a][1])];
        int u = who[geth(x + dsteps[b][0], y + dsteps[b][1])];

        del[geth(v, u)] = del[geth(u, v)] = 1;
    }
}

int construct_roads(vector <int> x, vector <int> y) {
    int n = sz(x);

    road[0 + 4][2 + 4]  = {2, 0}; road[2 + 4][0 + 4]  = {0, 1};
    road[0 + 4][-2 + 4] = {1, 3}; road[-2 + 4][0 + 4] = {3, 2};

    map <ll, int> mp;
    vector <pair <int, int> > r;
    map <ll, int> del;
    vector <int> pm(n);
    iota(all(pm), 0);
    shuffle(all(pm), rnd);

    bool sd = 1;
    for (int i = 0; i < n; i++) {
        mp[geth(x[i], y[i])] = i;
        pr[i] = i;
        sd &= (x[i] >= 2 && x[i] <= 4);
    }

    get_erased_2x2(x, y, del);
    for (auto &i : pm) {
        for (int j = 0; j < 4; j++) {
            int cx = x[i] + steps[j][0];
            int cy = y[i] + steps[j][1];

            if (mp.find(geth(cx, cy)) != mp.end() && f(i) != f(mp[geth(cx, cy)])) {
                int to = mp[geth(cx, cy)];
                if (del.find(geth(i, to)) != del.end()) {
                    continue;
                }
                link(i, to);
                r.pb({i, to});
            }
        }
    }
    sort(all(r));
    r.resize(unique(all(r)) - r.begin());

    for (int i = 0; i < n; i++) {
        if (f(i) != f(0)) {
            return 0;
        }
    }
    vector <int> u, v, A, B;
    map <ll, vector <int> > e;

    for (int i = 0; i < sz(r); i++) {
        int a = r[i].F, b = r[i].S;
        u.pb(a); v.pb(b);
        if (abs(x[a] - x[b]) == 0) {
            int lx = x[a];
            int ly = min(y[a], y[b]);

            e[geth(lx - 1, ly + 1)].pb(i);
            e[geth(lx + 1, ly + 1)].pb(nt(i));
        } else {
            int lx = min(x[a], x[b]);
            int ly = y[a];

            e[geth(lx + 1, ly + 1)].pb(i);
            e[geth(lx + 1, ly - 1)].pb(nt(i));
        }
    }
    for (int i = 0; i < 2 * N; i++) {
        mk[i] = 0;
        g[i].clear();
    }
    for (auto &[p, v] : e) {
        if (sz(v) == 1) {
            continue;
        }
        for (auto &a : v) {
            for (auto &b : v) {
                if (a == b) {
                    continue;
                }
                add_impl(a, b);
            }
        }
    }

    for (int i = 0; i < 2 * N; i++) {
        cmp[i] = -1;
        if (mk[i]) {
            continue;
        }
        dfs(i);
    }
    reverse(all(ord));

    int C = 0;
    for (auto v : ord) {
        function <void(int)> dfsr = [&](int v) {
            if (cmp[v] != -1) {
                return;
            }
            cmp[v] = C;
            for (auto u : gr[v]) {
                dfsr(u);
            }
        };

        dfsr(v);
        C++;
    }

    for (int i = 0; i < N; i++) {
        if (cmp[i] == cmp[nt(i)]) {
            return 0;
        }
        to[i] = (cmp[i] > cmp[nt(i)]);
    }

    for (int i = 0; i < sz(r); i++) {
        int a = r[i].F, b = r[i].S;
        if (abs(x[a] - x[b]) == 0) {
            int lx = x[a];
            int ly = min(y[a], y[b]);

            if (to[i]) {
                A.pb(lx + 1);
            } else {
                A.pb(lx - 1);
            }
            B.pb(ly + 1);
        } else {
            int lx = min(x[a], x[b]);
            int ly = y[a];

            if (to[i]) {
                B.pb(ly - 1);
            } else {
                B.pb(ly + 1);
            }
            A.pb(lx + 1);
        }
    }

    build(u, v, A, B);
    return 1;
}

# Verdict Execution time Memory Grader output
1 Correct 42 ms 58292 KB Output is correct
2 Correct 42 ms 58212 KB Output is correct
3 Correct 31 ms 47316 KB Output is correct
4 Correct 48 ms 58248 KB Output is correct
5 Correct 46 ms 58208 KB Output is correct
6 Correct 24 ms 47316 KB Output is correct
7 Correct 29 ms 47300 KB Output is correct
8 Correct 29 ms 47244 KB Output is correct
9 Correct 612 ms 95892 KB Output is correct
10 Correct 76 ms 61864 KB Output is correct
11 Correct 248 ms 78164 KB Output is correct
12 Correct 90 ms 63804 KB Output is correct
13 Correct 141 ms 59428 KB Output is correct
14 Correct 26 ms 47508 KB Output is correct
15 Correct 28 ms 47804 KB Output is correct
16 Correct 643 ms 95944 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 42 ms 58292 KB Output is correct
2 Correct 42 ms 58212 KB Output is correct
3 Correct 31 ms 47316 KB Output is correct
4 Correct 48 ms 58248 KB Output is correct
5 Correct 46 ms 58208 KB Output is correct
6 Correct 24 ms 47316 KB Output is correct
7 Correct 29 ms 47300 KB Output is correct
8 Correct 29 ms 47244 KB Output is correct
9 Correct 612 ms 95892 KB Output is correct
10 Correct 76 ms 61864 KB Output is correct
11 Correct 248 ms 78164 KB Output is correct
12 Correct 90 ms 63804 KB Output is correct
13 Correct 141 ms 59428 KB Output is correct
14 Correct 26 ms 47508 KB Output is correct
15 Correct 28 ms 47804 KB Output is correct
16 Correct 643 ms 95944 KB Output is correct
17 Correct 42 ms 58220 KB Output is correct
18 Correct 44 ms 58192 KB Output is correct
19 Correct 43 ms 58140 KB Output is correct
20 Correct 42 ms 58204 KB Output is correct
21 Correct 26 ms 47252 KB Output is correct
22 Correct 41 ms 58224 KB Output is correct
23 Correct 2368 ms 145340 KB Output is correct
24 Correct 45 ms 58168 KB Output is correct
25 Correct 46 ms 58684 KB Output is correct
26 Correct 35 ms 48068 KB Output is correct
27 Correct 35 ms 48380 KB Output is correct
28 Correct 779 ms 93020 KB Output is correct
29 Correct 1343 ms 110440 KB Output is correct
30 Correct 1991 ms 127712 KB Output is correct
31 Correct 2781 ms 145504 KB Output is correct
32 Correct 47 ms 58180 KB Output is correct
33 Correct 42 ms 58196 KB Output is correct
34 Correct 47 ms 58196 KB Output is correct
35 Correct 30 ms 47316 KB Output is correct
36 Correct 24 ms 47316 KB Output is correct
37 Correct 47 ms 58144 KB Output is correct
38 Correct 49 ms 58316 KB Output is correct
39 Correct 44 ms 58212 KB Output is correct
40 Correct 53 ms 58116 KB Output is correct
41 Correct 27 ms 47216 KB Output is correct
42 Correct 53 ms 58232 KB Output is correct
43 Correct 31 ms 47904 KB Output is correct
44 Correct 33 ms 48120 KB Output is correct
45 Correct 800 ms 96696 KB Output is correct
46 Correct 1290 ms 115096 KB Output is correct
47 Correct 1353 ms 115236 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 42 ms 58292 KB Output is correct
2 Correct 42 ms 58212 KB Output is correct
3 Correct 31 ms 47316 KB Output is correct
4 Correct 48 ms 58248 KB Output is correct
5 Correct 46 ms 58208 KB Output is correct
6 Correct 24 ms 47316 KB Output is correct
7 Correct 29 ms 47300 KB Output is correct
8 Correct 29 ms 47244 KB Output is correct
9 Correct 612 ms 95892 KB Output is correct
10 Correct 76 ms 61864 KB Output is correct
11 Correct 248 ms 78164 KB Output is correct
12 Correct 90 ms 63804 KB Output is correct
13 Correct 141 ms 59428 KB Output is correct
14 Correct 26 ms 47508 KB Output is correct
15 Correct 28 ms 47804 KB Output is correct
16 Correct 643 ms 95944 KB Output is correct
17 Correct 42 ms 58220 KB Output is correct
18 Correct 44 ms 58192 KB Output is correct
19 Correct 43 ms 58140 KB Output is correct
20 Correct 42 ms 58204 KB Output is correct
21 Correct 26 ms 47252 KB Output is correct
22 Correct 41 ms 58224 KB Output is correct
23 Correct 2368 ms 145340 KB Output is correct
24 Correct 45 ms 58168 KB Output is correct
25 Correct 46 ms 58684 KB Output is correct
26 Correct 35 ms 48068 KB Output is correct
27 Correct 35 ms 48380 KB Output is correct
28 Correct 779 ms 93020 KB Output is correct
29 Correct 1343 ms 110440 KB Output is correct
30 Correct 1991 ms 127712 KB Output is correct
31 Correct 2781 ms 145504 KB Output is correct
32 Correct 47 ms 58180 KB Output is correct
33 Correct 42 ms 58196 KB Output is correct
34 Correct 47 ms 58196 KB Output is correct
35 Correct 30 ms 47316 KB Output is correct
36 Correct 24 ms 47316 KB Output is correct
37 Correct 47 ms 58144 KB Output is correct
38 Correct 49 ms 58316 KB Output is correct
39 Correct 44 ms 58212 KB Output is correct
40 Correct 53 ms 58116 KB Output is correct
41 Correct 27 ms 47216 KB Output is correct
42 Correct 53 ms 58232 KB Output is correct
43 Correct 31 ms 47904 KB Output is correct
44 Correct 33 ms 48120 KB Output is correct
45 Correct 800 ms 96696 KB Output is correct
46 Correct 1290 ms 115096 KB Output is correct
47 Correct 1353 ms 115236 KB Output is correct
48 Correct 43 ms 58208 KB Output is correct
49 Correct 47 ms 58248 KB Output is correct
50 Correct 44 ms 58184 KB Output is correct
51 Correct 48 ms 58160 KB Output is correct
52 Correct 45 ms 58224 KB Output is correct
53 Correct 41 ms 58212 KB Output is correct
54 Correct 42 ms 58212 KB Output is correct
55 Correct 2829 ms 153584 KB Output is correct
56 Correct 44 ms 58228 KB Output is correct
57 Correct 49 ms 59028 KB Output is correct
58 Correct 72 ms 61024 KB Output is correct
59 Correct 61 ms 50552 KB Output is correct
60 Correct 1074 ms 105904 KB Output is correct
61 Correct 1574 ms 122384 KB Output is correct
62 Correct 1954 ms 136572 KB Output is correct
63 Correct 2397 ms 154080 KB Output is correct
64 Correct 24 ms 47316 KB Output is correct
65 Correct 40 ms 58196 KB Output is correct
66 Correct 23 ms 47268 KB Output is correct
67 Correct 1415 ms 133544 KB Output is correct
68 Correct 1457 ms 133604 KB Output is correct
69 Correct 1444 ms 133180 KB Output is correct
70 Correct 33 ms 48332 KB Output is correct
71 Correct 43 ms 49336 KB Output is correct
72 Correct 716 ms 96752 KB Output is correct
73 Correct 1221 ms 117612 KB Output is correct
74 Correct 1719 ms 135280 KB Output is correct
75 Correct 1653 ms 135556 KB Output is correct
76 Correct 1458 ms 133676 KB Output is correct
77 Correct 36 ms 48512 KB Output is correct
78 Correct 47 ms 49612 KB Output is correct
79 Correct 703 ms 96472 KB Output is correct
80 Correct 1211 ms 117004 KB Output is correct
81 Correct 1726 ms 135448 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 42 ms 58292 KB Output is correct
2 Correct 42 ms 58212 KB Output is correct
3 Correct 31 ms 47316 KB Output is correct
4 Correct 48 ms 58248 KB Output is correct
5 Correct 46 ms 58208 KB Output is correct
6 Correct 24 ms 47316 KB Output is correct
7 Correct 29 ms 47300 KB Output is correct
8 Correct 29 ms 47244 KB Output is correct
9 Correct 612 ms 95892 KB Output is correct
10 Correct 76 ms 61864 KB Output is correct
11 Correct 248 ms 78164 KB Output is correct
12 Correct 90 ms 63804 KB Output is correct
13 Correct 141 ms 59428 KB Output is correct
14 Correct 26 ms 47508 KB Output is correct
15 Correct 28 ms 47804 KB Output is correct
16 Correct 643 ms 95944 KB Output is correct
17 Correct 41 ms 58164 KB Output is correct
18 Correct 39 ms 58176 KB Output is correct
19 Correct 24 ms 47320 KB Output is correct
20 Correct 1612 ms 143308 KB Output is correct
21 Correct 1762 ms 139828 KB Output is correct
22 Correct 1836 ms 139700 KB Output is correct
23 Correct 1530 ms 120764 KB Output is correct
24 Correct 1241 ms 127080 KB Output is correct
25 Correct 1411 ms 102200 KB Output is correct
26 Correct 1174 ms 102184 KB Output is correct
27 Correct 1609 ms 133504 KB Output is correct
28 Correct 1655 ms 133576 KB Output is correct
29 Correct 1756 ms 133544 KB Output is correct
30 Correct 1646 ms 133604 KB Output is correct
31 Correct 43 ms 58172 KB Output is correct
32 Correct 106 ms 63744 KB Output is correct
33 Correct 387 ms 81024 KB Output is correct
34 Correct 1573 ms 142128 KB Output is correct
35 Correct 55 ms 49864 KB Output is correct
36 Correct 208 ms 59980 KB Output is correct
37 Correct 455 ms 72760 KB Output is correct
38 Correct 635 ms 89964 KB Output is correct
39 Correct 826 ms 101028 KB Output is correct
40 Correct 1141 ms 114936 KB Output is correct
41 Correct 1502 ms 125956 KB Output is correct
42 Correct 2001 ms 137104 KB Output is correct
43 Correct 47 ms 58172 KB Output is correct
44 Correct 44 ms 58172 KB Output is correct
45 Correct 42 ms 58224 KB Output is correct
46 Correct 31 ms 47316 KB Output is correct
47 Correct 31 ms 47268 KB Output is correct
48 Correct 44 ms 58168 KB Output is correct
49 Correct 54 ms 58128 KB Output is correct
50 Correct 50 ms 58180 KB Output is correct
51 Correct 51 ms 58200 KB Output is correct
52 Correct 26 ms 47316 KB Output is correct
53 Correct 46 ms 58212 KB Output is correct
54 Correct 28 ms 47828 KB Output is correct
55 Correct 39 ms 48084 KB Output is correct
56 Correct 797 ms 96796 KB Output is correct
57 Correct 1322 ms 115032 KB Output is correct
58 Correct 1209 ms 115480 KB Output is correct
59 Correct 24 ms 47316 KB Output is correct
60 Correct 43 ms 58120 KB Output is correct
61 Correct 32 ms 47244 KB Output is correct
62 Correct 1447 ms 133688 KB Output is correct
63 Correct 1460 ms 133620 KB Output is correct
64 Correct 1440 ms 133172 KB Output is correct
65 Correct 35 ms 48340 KB Output is correct
66 Correct 43 ms 49412 KB Output is correct
67 Correct 839 ms 96536 KB Output is correct
68 Correct 1437 ms 117572 KB Output is correct
69 Correct 2111 ms 135408 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 42 ms 58292 KB Output is correct
2 Correct 42 ms 58212 KB Output is correct
3 Correct 31 ms 47316 KB Output is correct
4 Correct 48 ms 58248 KB Output is correct
5 Correct 46 ms 58208 KB Output is correct
6 Correct 24 ms 47316 KB Output is correct
7 Correct 29 ms 47300 KB Output is correct
8 Correct 29 ms 47244 KB Output is correct
9 Correct 612 ms 95892 KB Output is correct
10 Correct 76 ms 61864 KB Output is correct
11 Correct 248 ms 78164 KB Output is correct
12 Correct 90 ms 63804 KB Output is correct
13 Correct 141 ms 59428 KB Output is correct
14 Correct 26 ms 47508 KB Output is correct
15 Correct 28 ms 47804 KB Output is correct
16 Correct 643 ms 95944 KB Output is correct
17 Correct 1609 ms 133988 KB Output is correct
18 Correct 1607 ms 133796 KB Output is correct
19 Correct 1799 ms 141636 KB Output is correct
20 Correct 1849 ms 134556 KB Output is correct
21 Correct 1563 ms 125408 KB Output is correct
22 Correct 44 ms 58200 KB Output is correct
23 Correct 214 ms 70456 KB Output is correct
24 Correct 83 ms 52172 KB Output is correct
25 Correct 343 ms 64372 KB Output is correct
26 Correct 583 ms 76880 KB Output is correct
27 Correct 703 ms 97256 KB Output is correct
28 Correct 967 ms 106944 KB Output is correct
29 Correct 1231 ms 116800 KB Output is correct
30 Correct 1483 ms 127524 KB Output is correct
31 Correct 1751 ms 136736 KB Output is correct
32 Correct 1649 ms 135048 KB Output is correct
33 Correct 1477 ms 133588 KB Output is correct
34 Correct 38 ms 48612 KB Output is correct
35 Correct 48 ms 49544 KB Output is correct
36 Correct 698 ms 96728 KB Output is correct
37 Correct 1184 ms 117580 KB Output is correct
38 Correct 1738 ms 135624 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 42 ms 58292 KB Output is correct
2 Correct 42 ms 58212 KB Output is correct
3 Correct 31 ms 47316 KB Output is correct
4 Correct 48 ms 58248 KB Output is correct
5 Correct 46 ms 58208 KB Output is correct
6 Correct 24 ms 47316 KB Output is correct
7 Correct 29 ms 47300 KB Output is correct
8 Correct 29 ms 47244 KB Output is correct
9 Correct 612 ms 95892 KB Output is correct
10 Correct 76 ms 61864 KB Output is correct
11 Correct 248 ms 78164 KB Output is correct
12 Correct 90 ms 63804 KB Output is correct
13 Correct 141 ms 59428 KB Output is correct
14 Correct 26 ms 47508 KB Output is correct
15 Correct 28 ms 47804 KB Output is correct
16 Correct 643 ms 95944 KB Output is correct
17 Correct 42 ms 58220 KB Output is correct
18 Correct 44 ms 58192 KB Output is correct
19 Correct 43 ms 58140 KB Output is correct
20 Correct 42 ms 58204 KB Output is correct
21 Correct 26 ms 47252 KB Output is correct
22 Correct 41 ms 58224 KB Output is correct
23 Correct 2368 ms 145340 KB Output is correct
24 Correct 45 ms 58168 KB Output is correct
25 Correct 46 ms 58684 KB Output is correct
26 Correct 35 ms 48068 KB Output is correct
27 Correct 35 ms 48380 KB Output is correct
28 Correct 779 ms 93020 KB Output is correct
29 Correct 1343 ms 110440 KB Output is correct
30 Correct 1991 ms 127712 KB Output is correct
31 Correct 2781 ms 145504 KB Output is correct
32 Correct 47 ms 58180 KB Output is correct
33 Correct 42 ms 58196 KB Output is correct
34 Correct 47 ms 58196 KB Output is correct
35 Correct 30 ms 47316 KB Output is correct
36 Correct 24 ms 47316 KB Output is correct
37 Correct 47 ms 58144 KB Output is correct
38 Correct 49 ms 58316 KB Output is correct
39 Correct 44 ms 58212 KB Output is correct
40 Correct 53 ms 58116 KB Output is correct
41 Correct 27 ms 47216 KB Output is correct
42 Correct 53 ms 58232 KB Output is correct
43 Correct 31 ms 47904 KB Output is correct
44 Correct 33 ms 48120 KB Output is correct
45 Correct 800 ms 96696 KB Output is correct
46 Correct 1290 ms 115096 KB Output is correct
47 Correct 1353 ms 115236 KB Output is correct
48 Correct 43 ms 58208 KB Output is correct
49 Correct 47 ms 58248 KB Output is correct
50 Correct 44 ms 58184 KB Output is correct
51 Correct 48 ms 58160 KB Output is correct
52 Correct 45 ms 58224 KB Output is correct
53 Correct 41 ms 58212 KB Output is correct
54 Correct 42 ms 58212 KB Output is correct
55 Correct 2829 ms 153584 KB Output is correct
56 Correct 44 ms 58228 KB Output is correct
57 Correct 49 ms 59028 KB Output is correct
58 Correct 72 ms 61024 KB Output is correct
59 Correct 61 ms 50552 KB Output is correct
60 Correct 1074 ms 105904 KB Output is correct
61 Correct 1574 ms 122384 KB Output is correct
62 Correct 1954 ms 136572 KB Output is correct
63 Correct 2397 ms 154080 KB Output is correct
64 Correct 24 ms 47316 KB Output is correct
65 Correct 40 ms 58196 KB Output is correct
66 Correct 23 ms 47268 KB Output is correct
67 Correct 1415 ms 133544 KB Output is correct
68 Correct 1457 ms 133604 KB Output is correct
69 Correct 1444 ms 133180 KB Output is correct
70 Correct 33 ms 48332 KB Output is correct
71 Correct 43 ms 49336 KB Output is correct
72 Correct 716 ms 96752 KB Output is correct
73 Correct 1221 ms 117612 KB Output is correct
74 Correct 1719 ms 135280 KB Output is correct
75 Correct 1653 ms 135556 KB Output is correct
76 Correct 1458 ms 133676 KB Output is correct
77 Correct 36 ms 48512 KB Output is correct
78 Correct 47 ms 49612 KB Output is correct
79 Correct 703 ms 96472 KB Output is correct
80 Correct 1211 ms 117004 KB Output is correct
81 Correct 1726 ms 135448 KB Output is correct
82 Correct 41 ms 58164 KB Output is correct
83 Correct 39 ms 58176 KB Output is correct
84 Correct 24 ms 47320 KB Output is correct
85 Correct 1612 ms 143308 KB Output is correct
86 Correct 1762 ms 139828 KB Output is correct
87 Correct 1836 ms 139700 KB Output is correct
88 Correct 1530 ms 120764 KB Output is correct
89 Correct 1241 ms 127080 KB Output is correct
90 Correct 1411 ms 102200 KB Output is correct
91 Correct 1174 ms 102184 KB Output is correct
92 Correct 1609 ms 133504 KB Output is correct
93 Correct 1655 ms 133576 KB Output is correct
94 Correct 1756 ms 133544 KB Output is correct
95 Correct 1646 ms 133604 KB Output is correct
96 Correct 43 ms 58172 KB Output is correct
97 Correct 106 ms 63744 KB Output is correct
98 Correct 387 ms 81024 KB Output is correct
99 Correct 1573 ms 142128 KB Output is correct
100 Correct 55 ms 49864 KB Output is correct
101 Correct 208 ms 59980 KB Output is correct
102 Correct 455 ms 72760 KB Output is correct
103 Correct 635 ms 89964 KB Output is correct
104 Correct 826 ms 101028 KB Output is correct
105 Correct 1141 ms 114936 KB Output is correct
106 Correct 1502 ms 125956 KB Output is correct
107 Correct 2001 ms 137104 KB Output is correct
108 Correct 47 ms 58172 KB Output is correct
109 Correct 44 ms 58172 KB Output is correct
110 Correct 42 ms 58224 KB Output is correct
111 Correct 31 ms 47316 KB Output is correct
112 Correct 31 ms 47268 KB Output is correct
113 Correct 44 ms 58168 KB Output is correct
114 Correct 54 ms 58128 KB Output is correct
115 Correct 50 ms 58180 KB Output is correct
116 Correct 51 ms 58200 KB Output is correct
117 Correct 26 ms 47316 KB Output is correct
118 Correct 46 ms 58212 KB Output is correct
119 Correct 28 ms 47828 KB Output is correct
120 Correct 39 ms 48084 KB Output is correct
121 Correct 797 ms 96796 KB Output is correct
122 Correct 1322 ms 115032 KB Output is correct
123 Correct 1209 ms 115480 KB Output is correct
124 Correct 24 ms 47316 KB Output is correct
125 Correct 43 ms 58120 KB Output is correct
126 Correct 32 ms 47244 KB Output is correct
127 Correct 1447 ms 133688 KB Output is correct
128 Correct 1460 ms 133620 KB Output is correct
129 Correct 1440 ms 133172 KB Output is correct
130 Correct 35 ms 48340 KB Output is correct
131 Correct 43 ms 49412 KB Output is correct
132 Correct 839 ms 96536 KB Output is correct
133 Correct 1437 ms 117572 KB Output is correct
134 Correct 2111 ms 135408 KB Output is correct
135 Correct 1609 ms 133988 KB Output is correct
136 Correct 1607 ms 133796 KB Output is correct
137 Correct 1799 ms 141636 KB Output is correct
138 Correct 1849 ms 134556 KB Output is correct
139 Correct 1563 ms 125408 KB Output is correct
140 Correct 44 ms 58200 KB Output is correct
141 Correct 214 ms 70456 KB Output is correct
142 Correct 83 ms 52172 KB Output is correct
143 Correct 343 ms 64372 KB Output is correct
144 Correct 583 ms 76880 KB Output is correct
145 Correct 703 ms 97256 KB Output is correct
146 Correct 967 ms 106944 KB Output is correct
147 Correct 1231 ms 116800 KB Output is correct
148 Correct 1483 ms 127524 KB Output is correct
149 Correct 1751 ms 136736 KB Output is correct
150 Correct 1649 ms 135048 KB Output is correct
151 Correct 1477 ms 133588 KB Output is correct
152 Correct 38 ms 48612 KB Output is correct
153 Correct 48 ms 49544 KB Output is correct
154 Correct 698 ms 96728 KB Output is correct
155 Correct 1184 ms 117580 KB Output is correct
156 Correct 1738 ms 135624 KB Output is correct
157 Correct 41 ms 58188 KB Output is correct
158 Correct 25 ms 47304 KB Output is correct
159 Correct 40 ms 58232 KB Output is correct
160 Correct 44 ms 58200 KB Output is correct
161 Correct 2554 ms 162688 KB Output is correct
162 Correct 1525 ms 142800 KB Output is correct
163 Correct 1909 ms 143236 KB Output is correct
164 Correct 1904 ms 144200 KB Output is correct
165 Correct 2356 ms 157488 KB Output is correct
166 Correct 2478 ms 161508 KB Output is correct
167 Correct 386 ms 80300 KB Output is correct
168 Correct 171 ms 58888 KB Output is correct
169 Correct 559 ms 78224 KB Output is correct
170 Correct 1341 ms 105576 KB Output is correct
171 Correct 1865 ms 122788 KB Output is correct
172 Correct 1111 ms 110464 KB Output is correct
173 Correct 1419 ms 120552 KB Output is correct
174 Correct 1741 ms 131928 KB Output is correct
175 Correct 2005 ms 142020 KB Output is correct
176 Correct 2338 ms 152640 KB Output is correct
177 Correct 2555 ms 162752 KB Output is correct