Submission #1031779

# Submission time Handle Problem Language Result Execution time Memory
1031779 2024-07-23T07:05:06 Z GrindMachine Segments (IZhO18_segments) C++17
100 / 100
1175 ms 35596 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

template<typename T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long int ll;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL)
#define pb push_back
#define endl '\n'
#define sz(a) (int)a.size()
#define setbits(x) __builtin_popcountll(x)
#define ff first
#define ss second
#define conts continue
#define ceil2(x,y) ((x+y-1)/(y))
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define yes cout << "Yes" << endl
#define no cout << "No" << endl

#define rep(i,n) for(int i = 0; i < n; ++i)
#define rep1(i,n) for(int i = 1; i <= n; ++i)
#define rev(i,s,e) for(int i = s; i >= e; --i)
#define trav(i,a) for(auto &i : a)

template<typename T>
void amin(T &a, T b) {
    a = min(a,b);
}

template<typename T>
void amax(T &a, T b) {
    a = max(a,b);
}

#ifdef LOCAL
#include "debug.h"
#else
#define debug(...) 42
#endif

/*

refs:
other solutions
https://codeforces.com/blog/entry/124766 (log decomposition technique)

*/

const int MOD = 1e9 + 7;
const int N = 1e5 + 5;
const int inf1 = int(1e9) + 5;
const ll inf2 = ll(1e18) + 5;

template<typename T>
struct fenwick {
    int n;
    vector<vector<int>> tr;
    int LOG = 0;

    fenwick() {

    }

    fenwick(int n_) {
        n = n_;
        tr = vector<vector<int>>(n + 1);
        while((1<<LOG) <= n) LOG++;
    }

    int lsb(int x) {
        return x & -x;
    }

    void pupd(int i, int v) {
        i++;
        for(; i <= n; i += lsb(i)){
            tr[i].pb(v);
        }
    }

    void build(){
        rep1(i,n){
            sort(all(tr[i]));
        }
    }

    void clear(){
        tr.clear();
        tr.shrink_to_fit();
    }

    int get(int i, int x, int y) {
        i++;
        int res = 0;
        for(; i; i ^= lsb(i)){
            auto &a = tr[i];
            if(y == 2*inf1) res += sz(a);
            else res += upper_bound(all(a),y)-a.begin();
            if(x) res -= lower_bound(all(a),x)-a.begin();
        }
        return res;
    }

    int query(int l, int r, int x, int y) {
        if (l > r) return 0;
        int res = get(r,x,y) - get(l-1,x,y);
        return res;
    }
};

struct S{
    vector<pii> a;
    fenwick<int> fenw1,fenw2;
    bool empty(){
        return a.empty();
    }
    void clear(){
        a.clear();
        a.shrink_to_fit();
        fenw1.clear(), fenw2.clear();
    }
    void build(){        
        fenw1 = fenwick<int>(sz(a));
        fenw2 = fenwick<int>(sz(a));
        rep(i,sz(a)){
            fenw1.pupd(i,a[i].ff);
            fenw2.pupd(i,a[i].ss);
        }
        fenw1.build();
        fenw2.build();
    }
    int query(int i, int l1, int r1, int k){
        int n = sz(a);
        return fenw1.query(i,n-1,r1-k+1,2*inf1)+fenw2.query(i,n-1,0,l1+k-1);
    }
};

struct DS{
    S a[20];
    void insert(int l, int r){
        S curr;
        curr.a.pb({l,r});

        rep(i,20){
            if(!a[i].empty()){
                S nxt;
                int ptr1 = 0, ptr2 = 0;
                while(ptr1 < sz(curr.a) and ptr2 < sz(a[i].a)){
                    int len1 = curr.a[ptr1].ss-curr.a[ptr1].ff;
                    int len2 = a[i].a[ptr2].ss-a[i].a[ptr2].ff;
                    if(len1 < len2){
                        nxt.a.pb(curr.a[ptr1++]);
                    }
                    else{
                        nxt.a.pb(a[i].a[ptr2++]);
                    }
                }                
                while(ptr1 < sz(curr.a)) nxt.a.pb(curr.a[ptr1++]);
                while(ptr2 < sz(a[i].a)) nxt.a.pb(a[i].a[ptr2++]);

                curr = nxt;
                nxt.clear();
                a[i].clear();                
            }
            else{
                a[i] = curr;
                a[i].build();
                break;
            }
        }
    }

    int query(int l1, int r1, int k){
        if(r1-l1 < k) return 0;
        int ans = 0;
        rep(i,20){
            if(a[i].empty()) conts;
            auto &b = a[i].a;
            int lo = 0, hi = sz(b)-1;
            int pos = -1;

            while(lo <= hi){
                int mid = (lo+hi) >> 1;
                if(b[mid].ss-b[mid].ff >= k){
                    pos = mid;
                    hi = mid-1;
                }
                else{
                    lo = mid+1;
                }
            }

            if(pos == -1) conts;

            int bad = a[i].query(pos,l1,r1,k);
            int add = sz(b)-pos-bad;
            ans += add;
        }

        return ans;
    }
};

void solve(int test_case)
{
    int q,c; cin >> q >> c;
    
    DS ds1,ds2;
    vector<pii> a;
    a.pb({0,0});

    int last_ans = 0;

    while(q--){
        int t; cin >> t;
        if(t == 1){
            int l,r; cin >> l >> r;
            l ^= c*last_ans, r ^= c*last_ans;
            if(l > r) swap(l,r);
            ds1.insert(l,r);
            a.pb({l,r});
        }
        else if(t == 2){
            int id; cin >> id;
            auto [l,r] = a[id];
            ds2.insert(l,r);
        }
        else{
            int l,r,k; cin >> l >> r >> k;
            l ^= c*last_ans, r ^= c*last_ans;
            if(l > r) swap(l,r);
            k--;
            int ans = ds1.query(l,r,k)-ds2.query(l,r,k);
            cout << ans << endl;
            last_ans = ans;
        }
    }
}

int main()
{
    fastio;

    int t = 1;
    // cin >> t;

    rep1(i, t) {
        solve(i);
    }

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 10 ms 860 KB Output is correct
4 Correct 11 ms 860 KB Output is correct
5 Correct 11 ms 1116 KB Output is correct
6 Correct 11 ms 840 KB Output is correct
7 Correct 12 ms 860 KB Output is correct
8 Correct 11 ms 940 KB Output is correct
9 Correct 10 ms 892 KB Output is correct
10 Correct 12 ms 1116 KB Output is correct
11 Correct 14 ms 860 KB Output is correct
12 Correct 10 ms 860 KB Output is correct
13 Correct 14 ms 1108 KB Output is correct
14 Correct 11 ms 856 KB Output is correct
15 Correct 11 ms 920 KB Output is correct
16 Correct 10 ms 860 KB Output is correct
17 Correct 11 ms 860 KB Output is correct
18 Correct 12 ms 1116 KB Output is correct
19 Correct 10 ms 860 KB Output is correct
20 Correct 10 ms 1052 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 377 ms 9448 KB Output is correct
2 Correct 378 ms 9404 KB Output is correct
3 Correct 365 ms 9256 KB Output is correct
4 Correct 427 ms 10228 KB Output is correct
5 Correct 396 ms 17160 KB Output is correct
6 Correct 410 ms 17380 KB Output is correct
7 Correct 376 ms 9404 KB Output is correct
8 Correct 337 ms 9464 KB Output is correct
9 Correct 376 ms 9480 KB Output is correct
10 Correct 313 ms 4108 KB Output is correct
11 Correct 357 ms 5376 KB Output is correct
12 Correct 367 ms 13040 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 312 ms 13860 KB Output is correct
2 Correct 304 ms 13336 KB Output is correct
3 Correct 311 ms 13308 KB Output is correct
4 Correct 325 ms 13188 KB Output is correct
5 Correct 308 ms 13332 KB Output is correct
6 Correct 264 ms 11168 KB Output is correct
7 Correct 292 ms 13292 KB Output is correct
8 Correct 340 ms 17160 KB Output is correct
9 Correct 369 ms 17464 KB Output is correct
10 Correct 353 ms 15856 KB Output is correct
11 Correct 307 ms 12016 KB Output is correct
12 Correct 341 ms 16024 KB Output is correct
13 Correct 336 ms 15588 KB Output is correct
14 Correct 297 ms 13612 KB Output is correct
15 Correct 288 ms 14320 KB Output is correct
16 Correct 284 ms 12924 KB Output is correct
17 Correct 244 ms 9316 KB Output is correct
18 Correct 211 ms 9348 KB Output is correct
19 Correct 218 ms 9408 KB Output is correct
20 Correct 216 ms 9364 KB Output is correct
21 Correct 295 ms 12352 KB Output is correct
22 Correct 294 ms 13812 KB Output is correct
23 Correct 359 ms 16112 KB Output is correct
24 Correct 289 ms 14068 KB Output is correct
25 Correct 305 ms 13152 KB Output is correct
26 Correct 312 ms 12988 KB Output is correct
27 Correct 302 ms 13480 KB Output is correct
28 Correct 320 ms 13216 KB Output is correct
29 Correct 348 ms 15196 KB Output is correct
30 Correct 340 ms 15592 KB Output is correct
31 Correct 342 ms 17328 KB Output is correct
32 Correct 343 ms 15844 KB Output is correct
33 Correct 333 ms 15624 KB Output is correct
34 Correct 298 ms 13308 KB Output is correct
35 Correct 297 ms 14956 KB Output is correct
36 Correct 371 ms 16136 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 465 ms 13056 KB Output is correct
2 Correct 471 ms 13084 KB Output is correct
3 Correct 491 ms 13228 KB Output is correct
4 Correct 506 ms 13296 KB Output is correct
5 Correct 362 ms 14060 KB Output is correct
6 Correct 336 ms 3128 KB Output is correct
7 Correct 370 ms 15168 KB Output is correct
8 Correct 264 ms 4672 KB Output is correct
9 Correct 432 ms 13912 KB Output is correct
10 Correct 389 ms 16344 KB Output is correct
11 Correct 431 ms 12640 KB Output is correct
12 Correct 353 ms 17640 KB Output is correct
13 Correct 383 ms 15336 KB Output is correct
14 Correct 372 ms 13628 KB Output is correct
15 Correct 343 ms 17380 KB Output is correct
16 Correct 413 ms 15908 KB Output is correct
17 Correct 356 ms 9332 KB Output is correct
18 Correct 349 ms 9340 KB Output is correct
19 Correct 384 ms 9284 KB Output is correct
20 Correct 347 ms 9344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 10 ms 860 KB Output is correct
4 Correct 11 ms 860 KB Output is correct
5 Correct 11 ms 1116 KB Output is correct
6 Correct 11 ms 840 KB Output is correct
7 Correct 12 ms 860 KB Output is correct
8 Correct 11 ms 940 KB Output is correct
9 Correct 10 ms 892 KB Output is correct
10 Correct 12 ms 1116 KB Output is correct
11 Correct 14 ms 860 KB Output is correct
12 Correct 10 ms 860 KB Output is correct
13 Correct 14 ms 1108 KB Output is correct
14 Correct 11 ms 856 KB Output is correct
15 Correct 11 ms 920 KB Output is correct
16 Correct 10 ms 860 KB Output is correct
17 Correct 11 ms 860 KB Output is correct
18 Correct 12 ms 1116 KB Output is correct
19 Correct 10 ms 860 KB Output is correct
20 Correct 10 ms 1052 KB Output is correct
21 Correct 377 ms 9448 KB Output is correct
22 Correct 378 ms 9404 KB Output is correct
23 Correct 365 ms 9256 KB Output is correct
24 Correct 427 ms 10228 KB Output is correct
25 Correct 396 ms 17160 KB Output is correct
26 Correct 410 ms 17380 KB Output is correct
27 Correct 376 ms 9404 KB Output is correct
28 Correct 337 ms 9464 KB Output is correct
29 Correct 376 ms 9480 KB Output is correct
30 Correct 313 ms 4108 KB Output is correct
31 Correct 357 ms 5376 KB Output is correct
32 Correct 367 ms 13040 KB Output is correct
33 Correct 465 ms 13056 KB Output is correct
34 Correct 471 ms 13084 KB Output is correct
35 Correct 491 ms 13228 KB Output is correct
36 Correct 506 ms 13296 KB Output is correct
37 Correct 362 ms 14060 KB Output is correct
38 Correct 336 ms 3128 KB Output is correct
39 Correct 370 ms 15168 KB Output is correct
40 Correct 264 ms 4672 KB Output is correct
41 Correct 432 ms 13912 KB Output is correct
42 Correct 389 ms 16344 KB Output is correct
43 Correct 431 ms 12640 KB Output is correct
44 Correct 353 ms 17640 KB Output is correct
45 Correct 383 ms 15336 KB Output is correct
46 Correct 372 ms 13628 KB Output is correct
47 Correct 343 ms 17380 KB Output is correct
48 Correct 413 ms 15908 KB Output is correct
49 Correct 356 ms 9332 KB Output is correct
50 Correct 349 ms 9340 KB Output is correct
51 Correct 384 ms 9284 KB Output is correct
52 Correct 347 ms 9344 KB Output is correct
53 Correct 471 ms 13052 KB Output is correct
54 Correct 492 ms 13288 KB Output is correct
55 Correct 488 ms 13440 KB Output is correct
56 Correct 470 ms 13408 KB Output is correct
57 Correct 397 ms 6664 KB Output is correct
58 Correct 216 ms 4432 KB Output is correct
59 Correct 420 ms 12764 KB Output is correct
60 Correct 262 ms 3856 KB Output is correct
61 Correct 421 ms 17136 KB Output is correct
62 Correct 372 ms 18900 KB Output is correct
63 Correct 372 ms 19112 KB Output is correct
64 Correct 392 ms 18872 KB Output is correct
65 Correct 408 ms 14612 KB Output is correct
66 Correct 406 ms 14140 KB Output is correct
67 Correct 385 ms 17544 KB Output is correct
68 Correct 402 ms 16580 KB Output is correct
69 Correct 360 ms 11252 KB Output is correct
70 Correct 360 ms 11252 KB Output is correct
71 Correct 350 ms 11252 KB Output is correct
72 Correct 361 ms 11208 KB Output is correct
73 Correct 426 ms 14780 KB Output is correct
74 Correct 404 ms 16272 KB Output is correct
75 Correct 407 ms 19844 KB Output is correct
76 Correct 371 ms 19240 KB Output is correct
77 Correct 477 ms 14772 KB Output is correct
78 Correct 485 ms 14912 KB Output is correct
79 Correct 468 ms 14272 KB Output is correct
80 Correct 458 ms 14640 KB Output is correct
81 Correct 441 ms 15700 KB Output is correct
82 Correct 419 ms 14500 KB Output is correct
83 Correct 454 ms 14064 KB Output is correct
84 Correct 451 ms 16216 KB Output is correct
85 Correct 402 ms 17128 KB Output is correct
86 Correct 403 ms 17128 KB Output is correct
87 Correct 371 ms 15188 KB Output is correct
88 Correct 398 ms 14304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 10 ms 860 KB Output is correct
4 Correct 11 ms 860 KB Output is correct
5 Correct 11 ms 1116 KB Output is correct
6 Correct 11 ms 840 KB Output is correct
7 Correct 12 ms 860 KB Output is correct
8 Correct 11 ms 940 KB Output is correct
9 Correct 10 ms 892 KB Output is correct
10 Correct 12 ms 1116 KB Output is correct
11 Correct 14 ms 860 KB Output is correct
12 Correct 10 ms 860 KB Output is correct
13 Correct 14 ms 1108 KB Output is correct
14 Correct 11 ms 856 KB Output is correct
15 Correct 11 ms 920 KB Output is correct
16 Correct 10 ms 860 KB Output is correct
17 Correct 11 ms 860 KB Output is correct
18 Correct 12 ms 1116 KB Output is correct
19 Correct 10 ms 860 KB Output is correct
20 Correct 10 ms 1052 KB Output is correct
21 Correct 377 ms 9448 KB Output is correct
22 Correct 378 ms 9404 KB Output is correct
23 Correct 365 ms 9256 KB Output is correct
24 Correct 427 ms 10228 KB Output is correct
25 Correct 396 ms 17160 KB Output is correct
26 Correct 410 ms 17380 KB Output is correct
27 Correct 376 ms 9404 KB Output is correct
28 Correct 337 ms 9464 KB Output is correct
29 Correct 376 ms 9480 KB Output is correct
30 Correct 313 ms 4108 KB Output is correct
31 Correct 357 ms 5376 KB Output is correct
32 Correct 367 ms 13040 KB Output is correct
33 Correct 312 ms 13860 KB Output is correct
34 Correct 304 ms 13336 KB Output is correct
35 Correct 311 ms 13308 KB Output is correct
36 Correct 325 ms 13188 KB Output is correct
37 Correct 308 ms 13332 KB Output is correct
38 Correct 264 ms 11168 KB Output is correct
39 Correct 292 ms 13292 KB Output is correct
40 Correct 340 ms 17160 KB Output is correct
41 Correct 369 ms 17464 KB Output is correct
42 Correct 353 ms 15856 KB Output is correct
43 Correct 307 ms 12016 KB Output is correct
44 Correct 341 ms 16024 KB Output is correct
45 Correct 336 ms 15588 KB Output is correct
46 Correct 297 ms 13612 KB Output is correct
47 Correct 288 ms 14320 KB Output is correct
48 Correct 284 ms 12924 KB Output is correct
49 Correct 244 ms 9316 KB Output is correct
50 Correct 211 ms 9348 KB Output is correct
51 Correct 218 ms 9408 KB Output is correct
52 Correct 216 ms 9364 KB Output is correct
53 Correct 295 ms 12352 KB Output is correct
54 Correct 294 ms 13812 KB Output is correct
55 Correct 359 ms 16112 KB Output is correct
56 Correct 289 ms 14068 KB Output is correct
57 Correct 305 ms 13152 KB Output is correct
58 Correct 312 ms 12988 KB Output is correct
59 Correct 302 ms 13480 KB Output is correct
60 Correct 320 ms 13216 KB Output is correct
61 Correct 348 ms 15196 KB Output is correct
62 Correct 340 ms 15592 KB Output is correct
63 Correct 342 ms 17328 KB Output is correct
64 Correct 343 ms 15844 KB Output is correct
65 Correct 333 ms 15624 KB Output is correct
66 Correct 298 ms 13308 KB Output is correct
67 Correct 297 ms 14956 KB Output is correct
68 Correct 371 ms 16136 KB Output is correct
69 Correct 465 ms 13056 KB Output is correct
70 Correct 471 ms 13084 KB Output is correct
71 Correct 491 ms 13228 KB Output is correct
72 Correct 506 ms 13296 KB Output is correct
73 Correct 362 ms 14060 KB Output is correct
74 Correct 336 ms 3128 KB Output is correct
75 Correct 370 ms 15168 KB Output is correct
76 Correct 264 ms 4672 KB Output is correct
77 Correct 432 ms 13912 KB Output is correct
78 Correct 389 ms 16344 KB Output is correct
79 Correct 431 ms 12640 KB Output is correct
80 Correct 353 ms 17640 KB Output is correct
81 Correct 383 ms 15336 KB Output is correct
82 Correct 372 ms 13628 KB Output is correct
83 Correct 343 ms 17380 KB Output is correct
84 Correct 413 ms 15908 KB Output is correct
85 Correct 356 ms 9332 KB Output is correct
86 Correct 349 ms 9340 KB Output is correct
87 Correct 384 ms 9284 KB Output is correct
88 Correct 347 ms 9344 KB Output is correct
89 Correct 471 ms 13052 KB Output is correct
90 Correct 492 ms 13288 KB Output is correct
91 Correct 488 ms 13440 KB Output is correct
92 Correct 470 ms 13408 KB Output is correct
93 Correct 397 ms 6664 KB Output is correct
94 Correct 216 ms 4432 KB Output is correct
95 Correct 420 ms 12764 KB Output is correct
96 Correct 262 ms 3856 KB Output is correct
97 Correct 421 ms 17136 KB Output is correct
98 Correct 372 ms 18900 KB Output is correct
99 Correct 372 ms 19112 KB Output is correct
100 Correct 392 ms 18872 KB Output is correct
101 Correct 408 ms 14612 KB Output is correct
102 Correct 406 ms 14140 KB Output is correct
103 Correct 385 ms 17544 KB Output is correct
104 Correct 402 ms 16580 KB Output is correct
105 Correct 360 ms 11252 KB Output is correct
106 Correct 360 ms 11252 KB Output is correct
107 Correct 350 ms 11252 KB Output is correct
108 Correct 361 ms 11208 KB Output is correct
109 Correct 426 ms 14780 KB Output is correct
110 Correct 404 ms 16272 KB Output is correct
111 Correct 407 ms 19844 KB Output is correct
112 Correct 371 ms 19240 KB Output is correct
113 Correct 477 ms 14772 KB Output is correct
114 Correct 485 ms 14912 KB Output is correct
115 Correct 468 ms 14272 KB Output is correct
116 Correct 458 ms 14640 KB Output is correct
117 Correct 441 ms 15700 KB Output is correct
118 Correct 419 ms 14500 KB Output is correct
119 Correct 454 ms 14064 KB Output is correct
120 Correct 451 ms 16216 KB Output is correct
121 Correct 402 ms 17128 KB Output is correct
122 Correct 403 ms 17128 KB Output is correct
123 Correct 371 ms 15188 KB Output is correct
124 Correct 398 ms 14304 KB Output is correct
125 Correct 1171 ms 29540 KB Output is correct
126 Correct 1146 ms 29068 KB Output is correct
127 Correct 1119 ms 29340 KB Output is correct
128 Correct 1175 ms 29104 KB Output is correct
129 Correct 1131 ms 29108 KB Output is correct
130 Correct 1129 ms 28840 KB Output is correct
131 Correct 726 ms 8148 KB Output is correct
132 Correct 917 ms 19568 KB Output is correct
133 Correct 1052 ms 26728 KB Output is correct
134 Correct 992 ms 8684 KB Output is correct
135 Correct 837 ms 26472 KB Output is correct
136 Correct 467 ms 1812 KB Output is correct
137 Correct 798 ms 35044 KB Output is correct
138 Correct 999 ms 30952 KB Output is correct
139 Correct 908 ms 32860 KB Output is correct
140 Correct 815 ms 34236 KB Output is correct
141 Correct 979 ms 32044 KB Output is correct
142 Correct 1004 ms 24444 KB Output is correct
143 Correct 917 ms 26332 KB Output is correct
144 Correct 933 ms 24616 KB Output is correct
145 Correct 828 ms 34200 KB Output is correct
146 Correct 882 ms 27732 KB Output is correct
147 Correct 922 ms 26380 KB Output is correct
148 Correct 877 ms 25732 KB Output is correct
149 Correct 833 ms 18864 KB Output is correct
150 Correct 835 ms 18724 KB Output is correct
151 Correct 867 ms 18904 KB Output is correct
152 Correct 858 ms 18948 KB Output is correct
153 Correct 826 ms 18660 KB Output is correct
154 Correct 861 ms 18736 KB Output is correct
155 Correct 984 ms 25032 KB Output is correct
156 Correct 978 ms 26368 KB Output is correct
157 Correct 797 ms 34532 KB Output is correct
158 Correct 790 ms 35044 KB Output is correct
159 Correct 895 ms 31208 KB Output is correct
160 Correct 926 ms 28196 KB Output is correct
161 Correct 1041 ms 26488 KB Output is correct
162 Correct 1026 ms 26388 KB Output is correct
163 Correct 1004 ms 26968 KB Output is correct
164 Correct 1106 ms 26768 KB Output is correct
165 Correct 1067 ms 27072 KB Output is correct
166 Correct 1012 ms 26756 KB Output is correct
167 Correct 764 ms 35596 KB Output is correct
168 Correct 788 ms 35552 KB Output is correct
169 Correct 843 ms 34356 KB Output is correct
170 Correct 850 ms 33764 KB Output is correct
171 Correct 880 ms 32304 KB Output is correct
172 Correct 979 ms 27372 KB Output is correct
173 Correct 808 ms 34464 KB Output is correct
174 Correct 853 ms 27888 KB Output is correct
175 Correct 784 ms 32228 KB Output is correct
176 Correct 900 ms 25940 KB Output is correct
177 Correct 871 ms 31208 KB Output is correct
178 Correct 939 ms 31448 KB Output is correct