QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#181174#6329. Colorful Graphucup-team228#AC ✓2197ms56112kbC++206.6kb2023-09-16 16:17:032023-09-16 16:17:03

Judging History

你现在查看的是最新测评结果

  • [2023-09-16 16:17:03]
  • 评测
  • 测评结果:AC
  • 用时:2197ms
  • 内存:56112kb
  • [2023-09-16 16:17:03]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef long long val_t;

const int N = 15000 + 10;

struct DSU {
    int Parent[N], Rank[N], Size[N], cnt;
    void init(int n) {
        for (int i = 1; i <= n; i++) {
            Parent[i] = i, Rank[i] = 0, Size[i] = 1;
        }
        cnt = n;
    }
    int find(int v) {
        if (Parent[v] == v) return v;
        else return Parent[v] = find(Parent[v]);
    }
    void unite(int u, int v) {
        u = find(u), v = find(v);
        if (u == v) return;
        if (Rank[u] < Rank[v]) swap(u, v);
        if (Rank[v] == Rank[u]) Rank[u]++;
        Parent[v] = u, cnt--;
        Size[u] += Size[v];
    }
};

struct Kosaraju {
    const int n;
    vector<vector<int>> g[2];
    vector<bool> used;
    vector<int> post;
    vector<vector<int>> comps;
    vector<int> id;
    Kosaraju(int _n) : n(_n) {
        g[0].resize(n + 1);
        g[1].resize(n + 1);
        used.resize(n + 1, false);
        id.resize(n + 1);
    }
    void add_edge(int u, int v) {
        g[0][u].push_back(v);
        g[1][v].push_back(u);
    }
    void dfs_inv(int v) {
        used[v] = true;
        for (int to : g[1][v]) {
            if (!used[to]) {
                dfs_inv(to);
            }
        }
        post.push_back(v);
    }
    void dfs(int v, vector<int>& comp) {
        used[v] = true;
        comp.push_back(v);
        for (int to: g[0][v]) {
            if (!used[to]) {
                dfs(to, comp);
            }
        }
    }
    const vector<vector<int>>& find_scc() {
        for (int i = 1; i <= n; i++) {
            used[i] = false;
        }
        for (int i = 1; i <= n; i++) {
            if (!used[i]) {
                dfs_inv(i);
            }
        }
        reverse(post.begin(), post.end());
        for (int i = 1; i <= n; i++) {
            used[i] = false;
        }
        for (int v : post) {
            if (!used[v]) {
                vector<int> comp;
                dfs(v, comp);
                comps.push_back(comp);
            }
        }
        reverse(comps.begin(), comps.end());
        // edges go from left to right
        for (int i = 0; i < comps.size(); i++) {
            for (int v : comps[i]) {
                id[v] = i + 1;
            }
        }
        return comps;
    }
};

const val_t inf = 1e18;

struct Edge {
    int s, e;
    val_t cap, flow;
    int id;
};

vector<int> g[N];
vector<Edge> edges;
int dist[N], ptr[N];
queue<int> q;
bool used[N];
int par[N];
vector<int> path;
vector<vector<int>> ans;

void add_edge(int s, int e, val_t cap, int id) {
    Edge forw = {s, e, cap, 0, id};
    Edge back = {e, s, 0, 0, -id};
    g[s].push_back(edges.size());
    edges.push_back(forw);
    g[e].push_back(edges.size());
    edges.push_back(back);
}

bool bfs(int src, int sink) {
    while (!q.empty()) q.pop();
    q.push(src);
    for (int i = 0; i < N; i++) dist[i] = -1;
    dist[src] = 0;
    while (!q.empty() && dist[sink] == -1) {
        int v = q.front();
        q.pop();
        for (int i = 0; i < g[v].size(); i++) {
            int id = g[v][i];
            int u = edges[id].e;
            if (dist[u] == -1 && edges[id].flow < edges[id].cap) {
                q.push(u);
                dist[u] = dist[v] + 1;
            }
        }
    }
    return dist[sink] != -1;
}

val_t dfs(int v, val_t flow, int sink) {
    if (!flow) return 0;
    if (v == sink) return flow;
    while (ptr[v] < g[v].size()) {
        int id = g[v][ptr[v]];
        int u = edges[id].e;
        if (dist[u] != dist[v] + 1) {
            ptr[v]++;
            continue;
        }
        val_t pushed = dfs(u, min(flow, edges[id].cap - edges[id].flow), sink);
        if (pushed) {
            edges[id].flow += pushed;
            edges[id ^ 1].flow -= pushed;
            return pushed;
        }
        ptr[v]++;
    }
    return 0;
}

val_t max_flow(int src, int sink) {
    val_t flow = 0;
    while (true) {
        if (!bfs(src, sink)) break;
        for (int i = 0; i < N; i++) ptr[i] = 0;
        while (val_t pushed = dfs(src, inf, sink)) {
            flow += pushed;
        }
    }
    return flow;
}

void dfs1(int v) {
    used[v] = true;
    for (int id : g[v]) {
        int to = edges[id].e;
        if (edges[id].id > 0 && edges[id].flow > 0 && !used[to]) {
            par[to] = id;
            dfs1(to);
        }
    }
}

DSU dsu;

int col_comp[N];
int ans_col[N];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
#endif

    int n, m;
    cin >> n >> m;

    Kosaraju ksj(n);

    for (int i = 1; i <= m; i++) {
        int u, v;
        cin >> u >> v;
        ksj.add_edge(u, v);
    }
    ksj.find_scc();

    int k = ksj.comps.size();

    int src = 0;
    int trg = 2 * k + 1;
    for (int i = 1; i <= n; i++) {
        for (int j : ksj.g[0][i]) {
            if (ksj.id[i] != ksj.id[j]) {
                add_edge(ksj.id[i], ksj.id[j] + k, inf, 1);
            }
        }
    }
    for (int i = 1; i <= k; i++) {
        add_edge(src, i, 1, 1);
        add_edge(i + k, trg, 1, 1);
        add_edge(i + k, i, inf, 1);
    }

    max_flow(src, trg);

    while (true) {
        for (int i = 0; i <= 2 * k + 1; i++) {
            used[i] = false;
            par[i] = 0;
        }
        dfs1(src);
        if (!used[trg]) {
            break;
        }
        int v = trg;
        path.clear();
        while (v != src) {
            path.push_back(par[v]);
            v = edges[par[v]].s;
        }
        reverse(path.begin(), path.end());
        val_t mn = inf;
        for (int id : path) {
            mn = min(mn, edges[id].flow);
        }
        vector<int> cur;
        for (int id : path) {
            cur.push_back(edges[id].e);
            edges[id].flow -= mn;
        }
        cur.pop_back();
        ans.push_back(cur);
    }

    dsu.init(k);
    for (const auto& path : ans) {
        dsu.unite(path.front(), path.back() - k);
    }

    for (int i = 1, j = 0; i <= k; i++) {
        if (dsu.find(i) == i) {
            col_comp[i] = ++j;
        }
    }
    for (int i = 1; i <= k; i++) {
        col_comp[i] = col_comp[dsu.find(i)];
        for (int v : ksj.comps[i - 1]) {
            ans_col[v] = col_comp[i];
        }
    }
    for (int i = 1; i <= n; i++) {
        cout << ans_col[i] << " ";
    }
    cout << "\n";

#ifdef LOCAL
    cout << "\nTime elapsed: " << double(clock()) / CLOCKS_PER_SEC << " s.\n";
#endif
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 4124kb

input:

5 5
1 4
2 3
1 3
2 5
5 1

output:

2 1 1 2 2 

result:

ok AC

Test #2:

score: 0
Accepted
time: 0ms
memory: 4136kb

input:

5 7
1 2
2 1
4 3
5 1
5 4
4 1
4 5

output:

2 2 1 1 1 

result:

ok AC

Test #3:

score: 0
Accepted
time: 1ms
memory: 4144kb

input:

8 6
6 1
3 4
3 6
2 3
4 1
6 4

output:

1 1 1 1 2 1 3 4 

result:

ok AC

Test #4:

score: 0
Accepted
time: 2197ms
memory: 32168kb

input:

7000 6999
4365 4296
2980 3141
6820 4995
4781 24
2416 5844
2940 2675
3293 2163
3853 5356
262 6706
1985 1497
5241 3803
353 1624
5838 4708
5452 3019
2029 6161
3849 4219
1095 1453
4268 4567
1184 1857
2911 3977
1662 2751
6353 6496
2002 6628
1407 4623
425 1331
4445 4277
1259 3165
4994 1044
2756 5788
5496 ...

output:

1 904 153 874 864 1194 1006 184 1026 691 1101 44 1024 1118 321 948 74 816 644 1185 1663 5 1055 1047 903 170 958 812 1071 1728 564 770 1507 898 629 1544 672 1335 881 1445 1378 1232 286 597 1400 663 1632 653 1428 320 1530 925 121 709 906 834 183 1343 788 114 892 646 706 727 1309 1544 461 1016 1395 111...

result:

ok AC

Test #5:

score: 0
Accepted
time: 1894ms
memory: 29288kb

input:

7000 6999
4832 1603
5984 6985
5355 3687
6007 2170
5984 3486
3267 2189
538 2123
4343 4553
5855 6168
5984 257
4239 2304
5984 2063
3298 1869
5984 6353
5984 2018
5984 5387
5984 3382
3164 3978
2690 2816
4810 2638
5984 3773
5984 1634
5984 2786
5984 3671
5984 5140
2943 5721
5984 414
1105 4060
3093 796
5984...

output:

1 57 609 32 82 572 790 1773 1125 313 209 934 134 885 1046 2318 744 114 204 2333 2089 2120 2249 1957 381 377 1831 1153 1809 2072 308 285 801 563 1537 1352 2000 161 1429 1447 2227 1549 1942 2029 2166 505 1333 709 1210 102 1330 245 2323 1516 1001 185 2328 1165 1816 872 975 349 819 207 1816 2067 473 175...

result:

ok AC

Test #6:

score: 0
Accepted
time: 1965ms
memory: 29224kb

input:

7000 6999
1649 5337
1701 3344
4394 2172
3330 39
5932 1141
5381 5340
5453 3300
125 2172
6810 5263
804 2172
6635 2172
676 4740
3015 1183
1710 5769
611 5915
3419 1581
2094 2172
4508 2172
6604 2433
6113 1466
1604 696
1518 1123
1287 2940
4825 2172
5130 4524
2693 2172
106 2172
5157 2172
3693 2172
5198 217...

output:

1 2 1353 927 283 2015 465 983 1927 951 1025 835 709 1002 1842 1539 1944 1107 1892 2039 2052 2067 584 1079 1595 778 2152 1195 457 1882 1739 1863 2088 2216 1380 1629 1185 1222 264 1150 681 838 1874 1640 1105 384 1998 883 1811 125 1080 655 2087 342 2026 937 936 1879 1689 14 2202 175 40 504 1652 1427 63...

result:

ok AC

Test #7:

score: 0
Accepted
time: 1660ms
memory: 56112kb

input:

7000 6999
2896 6321
881 2623
5058 2623
4833 2623
4669 2623
4781 5007
1447 2623
4781 4768
4781 3834
2758 4792
797 5055
3784 2623
4781 5510
6606 3040
597 3459
4136 2037
1291 3989
4781 837
4781 4379
5637 2053
1642 2665
4781 4664
4781 952
4924 2511
4781 4201
4781 2352
4781 5362
3901 197
137 2623
2706 19...

output:

1 1406 1664 23 1501 1680 1522 1356 354 883 1576 155 56 712 1347 1443 1548 31 872 708 1345 1220 795 607 1367 1504 1428 1007 996 237 1024 1011 885 233 1561 1434 1536 226 378 699 1113 282 879 925 1322 1453 482 1275 1196 1354 105 1188 393 425 970 391 256 709 783 807 1507 1673 987 113 792 612 272 1499 53...

result:

ok AC

Test #8:

score: 0
Accepted
time: 274ms
memory: 7356kb

input:

6999 6998
1269 3969
1269 2429
1269 2609
1269 2515
1269 6166
1269 6614
3108 1269
2105 1269
4670 1269
578 1269
4661 1269
1421 1269
2576 1269
6152 1269
1269 6636
3011 1269
305 1269
5189 1269
1683 1269
6861 1269
1269 5798
1499 1269
282 1269
914 1269
80 1269
677 1269
701 1269
1269 359
6521 1269
1269 1754...

output:

1 2 3 4 1074 1363 537 2668 1046 3246 3305 2947 632 435 2049 2492 239 977 1858 3282 126 2924 3208 2693 854 890 2394 273 2285 1676 113 1068 2419 3381 3195 2169 1615 460 1260 516 972 2430 1228 1205 3089 702 3215 530 832 43 2523 1553 3494 2412 264 2396 1078 1057 1895 783 2982 578 21 2498 3397 2834 3338 ...

result:

ok AC

Test #9:

score: 0
Accepted
time: 0ms
memory: 6844kb

input:

7000 0

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok AC

Test #10:

score: 0
Accepted
time: 733ms
memory: 7924kb

input:

7000 6999
3138 1903
3285 5919
6182 1430
1164 961
1577 6445
1390 3384
935 5723
6614 6387
4799 2877
3915 5128
5366 5455
2287 3941
2053 2326
4022 6993
488 2922
4327 4701
4674 3221
1666 4773
4356 3232
3888 937
4318 6942
577 1299
4491 1938
5154 1254
790 5532
4286 5478
2918 6725
2853 304
2554 5207
5140 77...

output:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

result:

ok AC

Test #11:

score: 0
Accepted
time: 63ms
memory: 6104kb

input:

7000 6999
33 3147
5877 4807
3116 4168
1651 2456
624 1740
6440 3058
6414 489
1023 2523
706 93
5523 598
4211 6063
3570 6840
6566 2971
6614 1907
5893 4389
4022 2527
5096 2345
4682 2134
188 5597
695 4285
1344 3832
3534 879
6574 6252
3759 3444
2167 85
5630 6600
3158 4404
6389 689
4871 6719
4295 6008
3437...

output:

1 5 12 12 36 36 12 30 12 12 12 12 12 68 12 30 12 2 12 12 32 12 5 12 12 12 12 12 12 12 12 12 15 12 12 30 7 6 12 12 12 36 34 12 31 12 32 12 12 30 12 12 12 12 12 30 12 12 12 8 32 7 7 12 12 12 12 32 5 12 28 5 12 12 36 12 36 32 5 12 1 32 12 12 28 29 12 12 32 12 5 12 12 12 12 35 54 12 28 12 12 12 12 6 12 ...

result:

ok AC

Test #12:

score: 0
Accepted
time: 37ms
memory: 5836kb

input:

7000 6999
1247 5150
3318 2013
5686 1615
6145 6521
5717 94
2787 3443
2648 4875
5332 5934
1897 1651
4640 2183
1750 6964
148 5228
745 2814
474 1165
496 6735
180 3412
2723 3374
6200 4361
497 5328
1928 5998
5648 1261
5090 4723
1715 706
2499 897
6569 6204
6039 2787
2882 5044
5767 4256
975 1877
1857 4453
6...

output:

1 115 1 94 1 1 117 1 133 1 127 100 132 1 1 95 1 1 1 1 1 1 1 1 1 1 87 1 128 255 1 1 1 1 1 1 123 1 130 1 1 1 126 1 1 94 1 1 1 107 105 173 1 1 1 1 1 120 127 1 94 120 1 1 1 100 1 1 129 128 1 133 128 1 1 1 1 1 125 93 1 1 1 1 1 94 1 1 1 1 129 1 1 1 102 1 1 1 1 1 107 1 1 129 94 1 1 126 1 95 87 1 1 128 1 10...

result:

ok AC

Test #13:

score: 0
Accepted
time: 189ms
memory: 6968kb

input:

7000 6999
2349 199
5295 2831
6143 2006
3212 3198
6956 3807
732 4838
5069 1027
5744 3479
6 5301
5687 4452
4201 1151
1353 4884
548 3506
6094 4799
4950 6939
5234 817
652 1314
979 6984
5771 1851
398 1322
2294 4298
847 3929
6833 183
2904 6745
4797 3874
94 315
4282 582
6591 5037
962 147
799 908
2593 5547
...

output:

1 788 297 1 1 116 112 341 418 252 121 1 166 367 210 1 401 211 314 368 176 1 1 158 313 1 1 484 188 1 343 192 221 239 1 147 1 173 256 124 283 1 119 396 1 284 240 1 1 592 204 216 353 416 259 839 252 326 479 186 1 1 287 1 1 305 297 331 226 361 1 1 1 1 166 1 303 1 365 181 1 1 1 230 1048 147 1 230 1 278 1...

result:

ok AC

Test #14:

score: 0
Accepted
time: 301ms
memory: 7340kb

input:

7000 6999
3409 1629
2076 6412
4997 1078
6320 626
4501 1104
4173 1774
5507 2375
2299 5115
4321 127
1192 6635
1909 3398
2972 499
862 5024
421 2931
861 1536
902 3813
659 4514
1843 3035
3669 1228
1724 1880
34 706
133 3468
6116 585
5073 1461
5667 3405
715 4834
6915 3007
1736 6108
3264 2870
2393 6474
2108...

output:

1 260 1605 1083 260 2445 642 260 767 1645 1210 1112 260 1412 1777 885 926 260 1026 586 260 1628 260 766 1816 260 1395 1296 1290 2019 260 2058 260 916 67 834 888 1637 1025 1162 1036 2365 318 96 260 909 3 1028 141 1097 1109 624 260 588 260 1665 1135 1293 548 1484 523 260 583 1688 951 911 915 1340 1103...

result:

ok AC

Test #15:

score: 0
Accepted
time: 615ms
memory: 7592kb

input:

7000 7000
2048 5882
6801 2408
3225 2608
1441 5079
497 6253
557 5589
2535 6257
4800 2595
4713 1286
4759 6636
4303 4296
6195 2048
6994 2987
1249 3044
1036 10
6472 2076
1996 1086
1279 1486
6100 369
4797 3437
2493 4576
2944 5601
197 5582
5488 5035
4023 659
2651 5024
2257 5710
1001 3941
446 4815
687 702
...

output:

1 2 3 4 5 6 7 8 9 10 15 16 32 33 50 67 69 70 71 82 167 168 169 174 180 94 182 206 207 208 194 209 195 210 211 212 213 214 219 222 223 225 226 227 287 288 289 291 292 184 299 301 305 112 307 304 308 315 321 79 326 327 332 333 336 338 228 342 343 344 345 291 346 350 351 359 191 370 374 375 376 377 378...

result:

ok AC

Test #16:

score: 0
Accepted
time: 612ms
memory: 7428kb

input:

6993 7000
6927 2941
6385 1428
6914 2553
2474 4268
2068 1640
2298 6960
6201 1806
4912 59
4407 5504
1595 6868
6378 2515
3713 3724
2995 2589
2314 2932
4042 431
6322 4178
5947 6850
6192 735
3802 1043
4982 1575
311 6496
5006 3191
6473 3084
2387 4706
6632 5901
5113 3066
5248 1274
5671 717
1311 4261
1960 3...

output:

1 7 8 21 23 24 26 205 206 230 231 232 235 277 278 32 302 312 313 316 321 34 323 325 328 338 340 347 349 350 351 352 353 361 271 364 222 366 369 347 80 370 371 109 389 395 410 411 412 296 413 209 415 417 418 389 229 172 394 448 44 449 187 205 456 192 459 460 461 4 44 466 469 471 70 95 472 473 474 475...

result:

ok AC

Test #17:

score: 0
Accepted
time: 579ms
memory: 7372kb

input:

6930 7000
3746 2945
3523 6758
4109 1106
2732 5415
2423 844
3702 6309
6503 5362
5997 6294
5688 1396
4842 1764
4780 4521
1254 826
37 4653
2138 2358
6345 1223
1385 2341
5261 5867
4815 2918
4209 696
4235 2314
3680 2919
5605 5155
6643 3391
2691 1418
6289 2093
1970 1804
828 5237
4025 1111
1164 5519
5889 2...

output:

1 2 4 7 344 50 223 348 351 353 355 356 357 361 92 369 370 371 375 385 214 396 400 407 412 413 414 168 237 415 209 147 416 419 432 286 35 434 437 438 439 440 23 441 442 443 447 449 463 465 472 473 474 483 315 484 485 486 145 488 489 496 498 88 502 176 504 507 86 422 508 512 513 514 517 518 519 521 34...

result:

ok AC

Test #18:

score: 0
Accepted
time: 449ms
memory: 7112kb

input:

6300 7000
5921 5466
723 5843
1084 3134
3865 5742
5492 2885
328 4408
6055 4074
3702 2240
1342 2353
295 734
553 48
4454 2980
1248 4460
5023 19
2784 441
105 844
6048 1773
4840 5260
3910 1292
5578 2864
4978 3116
6182 4962
2575 1661
5030 435
5861 4709
5033 358
1746 5816
5877 3921
2678 5679
1784 33
207 59...

output:

543 544 545 546 459 549 550 170 554 141 555 556 558 559 560 561 562 382 563 568 258 569 581 586 390 591 436 593 597 599 600 603 605 606 607 380 474 608 609 17 309 614 69 567 160 615 340 226 91 616 526 618 619 381 178 78 620 114 99 92 623 5 624 289 352 625 626 627 114 646 633 647 648 551 138 81 272 6...

result:

ok AC

Test #19:

score: 0
Accepted
time: 5ms
memory: 4588kb

input:

2800 7000
218 2670
1436 2268
38 2781
55 783
549 1627
660 1609
2268 2645
1376 1395
2747 71
785 1451
1096 2633
2655 2557
1569 307
16 56
1993 2751
1154 2760
478 2452
1841 2764
155 1781
215 1432
1788 2548
193 2665
167 1038
2425 2314
439 1615
269 1187
1222 245
1638 2016
2352 1511
2333 1564
1667 2576
1751...

output:

1 2 2 2 11 2 2 148 2 2 2 2 2 2 2 2 2 2 43 2 2 2 2 3 2 2 2 2 2 2 215 172 2 2 2 202 2 2 2 2 2 2 2 2 163 2 2 2 2 204 2 198 2 2 2 2 2 2 2 2 2 161 2 217 2 2 131 36 180 2 2 2 21 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 63 2 55 2 2 62 2 2 2 2 129 2 113 185 2 2 2 2 2 27 2 2 2 2 2 136 2 2 2 2 2 113 2 61 2 2 2 2 11 2 ...

result:

ok AC

Test #20:

score: 0
Accepted
time: 504ms
memory: 7448kb

input:

7000 7000
4828 3840
4148 2678
1645 2954
5516 1204
4664 285
904 1978
1434 1688
1902 5205
1324 4512
1722 1246
6724 5227
524 196
937 6286
6609 4724
5408 5610
4405 2463
5493 1567
2625 2894
2378 3685
5399 6872
6475 6546
5697 1265
1811 1314
2347 3005
6245 271
2414 434
3492 6948
4447 599
793 6107
464 5353
...

output:

1 2 7 8 10 11 13 15 16 17 19 21 23 24 25 26 30 34 37 39 42 43 44 46 47 47 50 51 53 54 58 60 61 62 55 65 66 68 71 72 73 74 75 76 79 80 81 82 83 84 86 87 88 90 92 93 95 96 100 101 102 105 106 107 111 114 115 116 118 122 123 124 125 126 128 129 131 133 136 137 138 139 117 141 143 145 148 149 150 151 15...

result:

ok AC

Test #21:

score: 0
Accepted
time: 492ms
memory: 7344kb

input:

6993 7000
1576 5558
2853 3183
212 2572
1001 75
3386 6483
401 22
489 6768
6520 1684
6439 6188
3810 6414
4088 1924
371 1666
2822 410
5664 1676
1043 1365
384 2688
4179 6357
6466 4630
2829 4371
116 6817
1535 6172
751 5740
499 2484
2013 4576
6556 670
6177 3847
5344 4280
6103 1055
496 4934
6639 217
6606 4...

output:

1 6 7 13 14 15 17 19 20 21 22 23 24 25 26 30 32 33 34 35 37 44 45 50 57 58 59 61 63 64 65 67 69 70 71 72 74 75 76 77 78 79 80 81 82 85 86 87 93 101 102 103 107 5 108 109 110 114 116 119 120 121 122 124 126 128 129 133 134 137 138 139 140 141 142 144 145 146 151 152 154 155 38 162 164 165 167 172 176...

result:

ok AC

Test #22:

score: 0
Accepted
time: 487ms
memory: 7328kb

input:

6930 7000
2378 5636
2953 3870
897 2126
112 1756
3302 5114
4591 5593
5408 4899
1204 6313
6254 2214
5360 6680
2354 5865
5959 5969
1628 5317
6396 1006
2402 1767
1921 3373
3758 312
2167 5711
4119 6585
19 3951
1714 1206
3754 4376
4516 307
6312 165
5721 2470
4828 4842
4520 4310
1922 4946
2006 3856
1218 58...

output:

1 3 6 7 8 14 21 23 25 26 27 30 31 34 35 36 37 39 42 43 45 46 47 48 49 50 56 57 60 32 61 62 40 64 65 66 68 70 73 74 75 76 77 78 79 80 81 82 83 84 85 98 51 99 101 104 105 106 107 108 109 110 114 115 118 119 122 124 134 135 136 137 138 140 141 143 144 145 146 148 149 29 151 152 153 156 157 158 159 161 ...

result:

ok AC

Test #23:

score: 0
Accepted
time: 437ms
memory: 7072kb

input:

6300 7000
1562 45
1716 2699
5291 4828
5063 4588
5888 4130
5901 6109
1476 921
3390 5892
5425 3782
824 5679
2278 6102
6146 5556
4874 2115
2842 2803
1963 5131
3736 2611
320 5272
758 5667
4087 228
5139 760
1812 2968
2897 6117
277 387
336 1322
4319 4597
608 4481
6182 3050
4333 3570
401 1662
3085 3197
537...

output:

1 2 4 7 8 11 14 15 17 21 27 35 36 37 38 39 40 43 45 46 48 49 50 51 52 53 54 56 57 59 61 62 64 66 67 68 69 70 73 76 83 84 85 86 87 91 92 97 98 102 117 118 123 127 129 135 136 137 138 139 140 141 145 148 149 151 152 153 155 157 159 160 162 163 167 168 129 169 170 172 173 71 174 178 183 184 187 188 189...

result:

ok AC

Test #24:

score: 0
Accepted
time: 135ms
memory: 5604kb

input:

2800 7000
931 1154
1783 1159
2515 1596
1734 1277
825 430
938 208
288 684
970 2075
618 2411
2690 500
223 2162
2093 2765
172 1029
832 1571
89 2333
2301 981
1354 1094
1989 137
2340 1804
2600 1249
1714 2343
1043 2738
1375 1239
804 2578
424 1572
568 1945
2233 297
1890 519
1475 944
2732 1123
2012 927
2232...

output:

5 8 28 32 34 35 40 41 42 56 57 91 97 27 172 175 188 192 195 212 80 217 168 232 238 125 316 151 99 319 325 326 327 125 205 332 333 300 340 341 301 344 350 351 364 195 375 235 81 207 324 351 344 380 289 385 332 403 406 365 9 407 409 235 234 413 414 418 318 301 427 434 168 23 255 437 105 252 160 142 40...

result:

ok AC

Test #25:

score: 0
Accepted
time: 1ms
memory: 4068kb

input:

52 41
18 31
2 5
22 32
1 50
50 29
9 32
44 27
45 17
26 24
18 30
28 25
38 28
5 47
49 38
23 50
8 3
16 24
29 46
7 52
30 38
33 32
39 32
3 18
50 44
1 35
49 37
18 24
29 6
20 39
40 45
33 28
51 52
26 40
38 43
52 45
39 40
42 34
6 45
32 19
20 52
34 28

output:

1 2 3 4 2 6 7 3 8 9 10 11 12 13 14 15 6 3 8 17 21 19 5 15 20 16 25 20 5 23 3 8 20 24 1 26 22 23 17 16 27 24 23 25 6 5 2 28 22 5 18 7 

result:

ok AC

Test #26:

score: 0
Accepted
time: 1ms
memory: 4244kb

input:

291 56
117 283
21 277
128 22
245 45
8 223
150 129
16 15
224 163
288 76
218 238
25 233
100 262
244 101
76 207
286 80
164 238
165 283
133 251
23 235
22 280
65 205
8 30
66 76
232 90
251 287
80 62
58 218
285 225
247 199
149 34
219 16
286 221
174 248
20 58
169 69
229 119
178 216
152 147
148 189
116 207
7...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 2 49 50 51 52 53 54 55 19 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 63 74 75 76 59 77 78 79 80 81 82 20 83 84 85 86 87 88 89 90 91 69 92 93 94 95 96 97 3...

result:

ok AC

Test #27:

score: 0
Accepted
time: 1ms
memory: 4112kb

input:

26 295
19 5
19 13
10 2
14 13
19 24
20 13
9 3
18 11
13 25
13 14
24 6
1 2
25 6
6 13
7 25
1 9
2 8
6 8
13 18
2 7
11 9
14 12
21 19
17 23
8 14
3 5
22 8
8 3
25 5
24 21
10 3
23 13
24 20
3 21
23 18
7 15
24 18
18 21
18 4
8 12
13 9
12 1
14 9
18 20
9 22
10 25
3 26
2 14
5 20
1 24
24 1
23 6
18 6
21 11
19 4
24 25
...

output:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

result:

ok AC

Test #28:

score: 0
Accepted
time: 1ms
memory: 4108kb

input:

63 1000
22 9
25 11
52 54
34 30
18 8
24 3
42 30
61 51
34 17
36 52
58 9
41 53
19 12
40 3
54 47
23 51
44 59
10 21
35 52
34 56
43 15
39 41
12 37
13 21
55 48
16 57
39 25
26 25
22 57
54 34
63 55
11 27
60 40
41 1
24 59
20 53
14 6
51 35
44 9
47 35
32 39
40 28
9 49
29 27
16 25
56 53
28 56
5 39
35 57
61 37
22...

output:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

result:

ok AC

Test #29:

score: 0
Accepted
time: 1ms
memory: 4132kb

input:

42 113
29 15
21 15
28 13
30 42
7 33
4 31
16 18
11 36
38 13
33 6
28 27
17 19
21 25
42 4
19 16
8 37
38 4
4 19
20 22
33 27
26 42
31 39
14 29
6 32
20 12
40 6
32 28
23 18
41 22
10 4
7 28
31 13
14 24
37 40
9 20
26 32
13 18
35 29
9 29
34 26
19 32
20 25
34 39
33 23
28 35
35 22
7 16
40 13
39 24
24 20
18 24
4...

output:

1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

result:

ok AC

Test #30:

score: 0
Accepted
time: 1ms
memory: 4140kb

input:

6 8
5 1
1 5
6 5
4 1
4 3
2 4
5 3
3 4

output:

1 2 1 1 1 1 

result:

ok AC

Test #31:

score: 0
Accepted
time: 279ms
memory: 7512kb

input:

7000 6999
6253 1991
6253 4600
1137 6253
1764 6253
6253 908
6253 2205
6253 213
6253 4399
6300 6253
4601 6253
6253 4884
6937 6253
6253 4070
2646 6253
1007 6253
6552 6253
6253 2115
6253 922
6223 6253
6253 2496
3522 6253
2050 6253
6253 763
6803 6253
6253 3847
2816 6253
6253 6297
6253 471
6253 3211
3203 ...

output:

1 2 2452 3259 2668 1799 206 81 1763 375 2180 2924 1321 3182 1982 361 1965 3002 2862 103 1365 143 3162 74 3037 2232 461 1070 58 2579 1153 1031 1869 1209 34 2399 560 405 348 570 887 3108 2140 1522 870 961 721 859 2717 2208 688 2420 3379 1694 3291 132 1345 2178 1150 2004 1524 607 931 1102 2269 2321 160...

result:

ok AC