답안 #797207

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
797207 2023-07-29T07:59:36 Z eltu0815 Fish 2 (JOI22_fish2) C++14
100 / 100
3127 ms 25048 KB
#include <bits/stdc++.h>
#define MAX 500005
#define MOD (ll)(1e9+7)
#define INF (ll)(1e18)
#define inf (1000000001)
 
using namespace std;    
typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
 
int n, q;
int arr[100005];
 
struct SEG1 {
    ll seg[400005];
    void update(int str, int ed, int idx, ll val, int node) {
        if(str == ed) {
            seg[node] = val;
            return;
        }
        int mid = str + ed >> 1;
        if(idx <= mid) update(str, mid, idx, val, node << 1);
        else update(mid + 1, ed, idx, val, node << 1 | 1);
        seg[node] = seg[node << 1] + seg[node << 1 | 1];
    }
    ll query(int str, int ed, int left, int right, int node) {
        if(str > right || ed < left) return 0;
        if(left <= str && ed <= right) return seg[node];
        int mid = str + ed >> 1;
        return query(str, mid, left, right, node << 1) + query(mid + 1, ed, left, right, node << 1 | 1);
    }
} seg1;
 
struct SEG2 {
    int seg[400005];
    void update(int str, int ed, int idx, int val, int node) {
        if(str == ed) {
            seg[node] = val;
            return;
        }
        int mid = str + ed >> 1;
        if(idx <= mid) update(str, mid, idx, val, node << 1);
        else update(mid + 1, ed, idx, val, node << 1 | 1);
        seg[node] = max(seg[node << 1], seg[node << 1 | 1]);
    }
    int get_mx(int str, int ed, int left, int right, int val, int node) {
        if(str > right || ed < left) return -1;
        if(seg[node] <= val) return -1;
        if(str == ed) return str;
        int mid = str + ed >> 1;
        int tmp = get_mx(mid + 1, ed, left, right, val, node << 1 | 1);
        if(tmp != -1) return tmp;
        return get_mx(str, mid, left, right, val, node << 1);
    }
    int get_mn(int str, int ed, int left, int right, ll val, int node) {
        if(str > right || ed < left) return -1;
        if(seg[node] <= val) return -1;
        if(str == ed) return str;
        int mid = str + ed >> 1;
        int tmp = get_mn(str, mid, left, right, val, node << 1);
        if(tmp != -1) return tmp;
        return get_mn(mid + 1, ed, left, right, val, node << 1 | 1);
    }
} seg2;
 
struct SEG3 {
    struct Node{
        int mn, cnt;
        Node() { mn = inf, cnt = 0; }
    };
    Node seg[400005];
    int lazy[400005];
    Node Merge(Node l, Node r) {
        Node ret; ret.cnt = 0;
        ret.mn = min(l.mn, r.mn);
        if(l.mn == ret.mn) ret.cnt += l.cnt;
        if(r.mn == ret.mn) ret.cnt += r.cnt;
        return ret;
    }
    void init(int str, int ed, int node) {
        lazy[node] = 0;
        if(str == ed) {
            seg[node].mn = 0, seg[node].cnt = 1;
            return;
        }
        int mid = str + ed >> 1;
        init(str, mid, node << 1);
        init(mid + 1, ed, node << 1 | 1);
        seg[node] = Merge(seg[node << 1], seg[node << 1 | 1]);
    }
    void lazyProp(int str, int ed, int node) {
        if(lazy[node]) {
            seg[node].mn += lazy[node];
            if(str != ed) {
                lazy[node << 1] += lazy[node];
                lazy[node << 1 | 1] += lazy[node];
            }
            lazy[node] = 0;
        }
    }
    void update(int str, int ed, int left, int right, int val, int node) {
        lazyProp(str, ed, node);
        if(str > right || ed < left) return;
        if(left <= str && ed <= right) {
            lazy[node] += val;
            lazyProp(str, ed, node);
            return;
        }
        int mid = str + ed >> 1;
        update(str, mid, left, right, val, node << 1);
        update(mid + 1, ed, left, right, val, node << 1 | 1);
        seg[node] = Merge(seg[node << 1], seg[node << 1 | 1]);
    }
    Node query(int str, int ed, int left, int right, int node) {
        lazyProp(str, ed, node);
        if(str > right || ed < left) return Node();
        if(left <= str && ed <= right) return seg[node];
        int mid = str + ed >> 1;
        return Merge(query(str, mid, left, right, node << 1), query(mid + 1, ed, left, right, node << 1 | 1));
    }
} seg3;
 
set<pii> s;
struct SEG4 {
    vector<pii> seg[400005];
    void update(int str, int ed, int l, int r, int node) {
        int mid = str + ed >> 1;
        if(str == ed || (l <= mid && r > mid)) {
            seg[node].push_back({l, r});
            seg3.update(1, n, l, r, 1, 1);
            return;
        }
        if(r <= mid) update(str, mid, l, r, node << 1);
        else update(mid + 1, ed, l, r, node << 1 | 1);
    }
    
    void erasex(int str, int ed, int x, int node) {
        while(!seg[node].empty() && seg[node].back().first <= x && x <= seg[node].back().second) {
            seg3.update(1, n, seg[node].back().first, seg[node].back().second, -1, 1);
            s.erase({seg[node].back().first, seg[node].back().second});
            seg[node].pop_back();
        }
        if(str == ed) return;
        int mid = str + ed >> 1;
        if(x <= mid) erasex(str, mid, x, node << 1);
        else erasex(mid + 1, ed, x, node << 1 | 1);
    }
} seg4;
 
void update(int i) {
    vector<pll> left, right;
    int j = i, sum = arr[j];
    while(j > 1) {
        j = seg2.get_mx(1, n, 1, j - 1, sum, 1);
        if(j == -1) break;
        left.push_back({j, seg1.query(1, n, 1, j, 1)});
        sum += arr[j];
    }
    left.push_back({0, 0});
    
    j = i, sum = arr[j];
    while(j < n) {
        j = seg2.get_mn(1, n, j + 1, n, sum, 1);
        if(j == -1) break;
        right.push_back({j, seg1.query(1, n, 1, j - 1, 1)});
        sum += arr[j];
    }
    right.push_back({n + 1, seg1.query(1, n, 1, n, 1)});
    
    vector<pii> range;
    for(auto l : left) for(auto r : right) {
        if(l.first == 0 && r.first == n + 1) continue;
        if(r.second - l.second < (ll)min(arr[r.first], arr[l.first])) {
            range.push_back({l.first + 1, r.first - 1});
        }
    }
    
    sort(range.begin(), range.end(), [&](auto a, auto b) {
            if(a.second - a.first != b.second - b.first) return a.second - a.first < b.second - b.first;
            return a.first < b.first;
        });
    
    for(auto [l, r] : range) {
        if(s.find({l, r}) == s.end()) {
            seg4.update(1, n, l, r, 1);
            s.insert({l, r});
        }
    }
}
 
int compL(int i, int lim) {
    vector<int> right;
    int j = i, sum = arr[j];
    while(j < n) {
        j = seg2.get_mn(1, n, j + 1, n, sum, 1);
        if(j == -1) break;
        right.push_back(j);
        sum += arr[j];
    }
    int mx = i;
    for(auto r : right) {
        if(r <= lim && seg1.query(1, n, i, r - 1, 1) < (ll)arr[r]) mx = max(mx, r);
    }
    return mx;
}
 
int compR(int i, int lim) {
    vector<int> left;
    int j = i, sum = arr[j];
    while(j > 1) {
        j = seg2.get_mx(1, n, 1, j - 1, sum, 1);
        if(j == -1) break;
        left.push_back(j);
        sum += arr[j];
    }
    int mn = i;
    for(auto l : left) {
        if(l >= lim && seg1.query(1, n, l + 1, i, 1) < (ll)arr[l]) mn = min(mn, l);
    }
    return mn;
}
 
void update_query(int a, int b) {
    arr[a] = b;
    seg1.update(1, n, a, b, 1);
    seg2.update(1, n, a, b, 1);
    
    seg4.erasex(1, n, a, 1);
    update(a);
    
    if(a > 1) seg4.erasex(1, n, a - 1, 1);
    if(a > 1) update(a - 1);
    
    if(a < n) seg4.erasex(1, n, a + 1, 1);
    if(a < n) update(a + 1);
}
 
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    
    cin >> n;
    seg3.init(1, n, 1); arr[0] = arr[n + 1] = inf;
    for(int i = 1; i <= n; ++i) {
        cin >> arr[i];
        update_query(i, arr[i]);
    }
    
    cin >> q;
    while(q--) {
        int t, a, b; cin >> t >> a >> b;
        if(t == 1) update_query(a, b);
        else {
            int l = a, r = b;
            a = compL(a, r); b = compR(b, l);
            cout << seg3.query(1, n, a, b, 1).cnt << '\n';
        }
    }
    return 0;
}

Compilation message

fish2.cpp: In member function 'void SEG1::update(int, int, int, ll, int)':
fish2.cpp:22:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   22 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'll SEG1::query(int, int, int, int, int)':
fish2.cpp:30:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   30 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'void SEG2::update(int, int, int, int, int)':
fish2.cpp:42:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   42 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'int SEG2::get_mx(int, int, int, int, int, int)':
fish2.cpp:51:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   51 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'int SEG2::get_mn(int, int, int, int, ll, int)':
fish2.cpp:60:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   60 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'void SEG3::init(int, int, int)':
fish2.cpp:87:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   87 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'void SEG3::update(int, int, int, int, int, int)':
fish2.cpp:110:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  110 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'SEG3::Node SEG3::query(int, int, int, int, int)':
fish2.cpp:119:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  119 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'void SEG4::update(int, int, int, int, int)':
fish2.cpp:128:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  128 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In member function 'void SEG4::erasex(int, int, int, int)':
fish2.cpp:145:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  145 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In function 'void update(int)':
fish2.cpp:184:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  184 |     for(auto [l, r] : range) {
      |              ^
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 12756 KB Output is correct
2 Correct 6 ms 12756 KB Output is correct
3 Correct 6 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 15 ms 12884 KB Output is correct
6 Correct 10 ms 12908 KB Output is correct
7 Correct 13 ms 12912 KB Output is correct
8 Correct 12 ms 12912 KB Output is correct
9 Correct 10 ms 12884 KB Output is correct
10 Correct 8 ms 12884 KB Output is correct
11 Correct 7 ms 12884 KB Output is correct
12 Correct 11 ms 12904 KB Output is correct
13 Correct 10 ms 12884 KB Output is correct
14 Correct 15 ms 12908 KB Output is correct
15 Correct 14 ms 12888 KB Output is correct
16 Correct 14 ms 12888 KB Output is correct
17 Correct 10 ms 12884 KB Output is correct
18 Correct 10 ms 12884 KB Output is correct
19 Correct 9 ms 12884 KB Output is correct
20 Correct 8 ms 12840 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 12756 KB Output is correct
2 Correct 476 ms 22480 KB Output is correct
3 Correct 924 ms 22304 KB Output is correct
4 Correct 473 ms 22524 KB Output is correct
5 Correct 903 ms 22280 KB Output is correct
6 Correct 353 ms 20696 KB Output is correct
7 Correct 1047 ms 19292 KB Output is correct
8 Correct 360 ms 20724 KB Output is correct
9 Correct 1130 ms 19256 KB Output is correct
10 Correct 1872 ms 19788 KB Output is correct
11 Correct 2248 ms 19776 KB Output is correct
12 Correct 623 ms 20356 KB Output is correct
13 Correct 590 ms 20380 KB Output is correct
14 Correct 495 ms 22596 KB Output is correct
15 Correct 515 ms 22292 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 12756 KB Output is correct
2 Correct 6 ms 12756 KB Output is correct
3 Correct 6 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 15 ms 12884 KB Output is correct
6 Correct 10 ms 12908 KB Output is correct
7 Correct 13 ms 12912 KB Output is correct
8 Correct 12 ms 12912 KB Output is correct
9 Correct 10 ms 12884 KB Output is correct
10 Correct 8 ms 12884 KB Output is correct
11 Correct 7 ms 12884 KB Output is correct
12 Correct 11 ms 12904 KB Output is correct
13 Correct 10 ms 12884 KB Output is correct
14 Correct 15 ms 12908 KB Output is correct
15 Correct 14 ms 12888 KB Output is correct
16 Correct 14 ms 12888 KB Output is correct
17 Correct 10 ms 12884 KB Output is correct
18 Correct 10 ms 12884 KB Output is correct
19 Correct 9 ms 12884 KB Output is correct
20 Correct 8 ms 12840 KB Output is correct
21 Correct 5 ms 12756 KB Output is correct
22 Correct 476 ms 22480 KB Output is correct
23 Correct 924 ms 22304 KB Output is correct
24 Correct 473 ms 22524 KB Output is correct
25 Correct 903 ms 22280 KB Output is correct
26 Correct 353 ms 20696 KB Output is correct
27 Correct 1047 ms 19292 KB Output is correct
28 Correct 360 ms 20724 KB Output is correct
29 Correct 1130 ms 19256 KB Output is correct
30 Correct 1872 ms 19788 KB Output is correct
31 Correct 2248 ms 19776 KB Output is correct
32 Correct 623 ms 20356 KB Output is correct
33 Correct 590 ms 20380 KB Output is correct
34 Correct 495 ms 22596 KB Output is correct
35 Correct 515 ms 22292 KB Output is correct
36 Correct 460 ms 23172 KB Output is correct
37 Correct 929 ms 22548 KB Output is correct
38 Correct 952 ms 21828 KB Output is correct
39 Correct 455 ms 23156 KB Output is correct
40 Correct 892 ms 21716 KB Output is correct
41 Correct 368 ms 20756 KB Output is correct
42 Correct 355 ms 20748 KB Output is correct
43 Correct 1014 ms 19336 KB Output is correct
44 Correct 964 ms 19408 KB Output is correct
45 Correct 1970 ms 20356 KB Output is correct
46 Correct 1934 ms 19784 KB Output is correct
47 Correct 2182 ms 18636 KB Output is correct
48 Correct 623 ms 20408 KB Output is correct
49 Correct 523 ms 20300 KB Output is correct
50 Correct 502 ms 22492 KB Output is correct
51 Correct 530 ms 22364 KB Output is correct
52 Correct 506 ms 22584 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 12756 KB Output is correct
2 Correct 476 ms 22480 KB Output is correct
3 Correct 924 ms 22304 KB Output is correct
4 Correct 473 ms 22524 KB Output is correct
5 Correct 903 ms 22280 KB Output is correct
6 Correct 353 ms 20696 KB Output is correct
7 Correct 1047 ms 19292 KB Output is correct
8 Correct 360 ms 20724 KB Output is correct
9 Correct 1130 ms 19256 KB Output is correct
10 Correct 1872 ms 19788 KB Output is correct
11 Correct 2248 ms 19776 KB Output is correct
12 Correct 623 ms 20356 KB Output is correct
13 Correct 590 ms 20380 KB Output is correct
14 Correct 495 ms 22596 KB Output is correct
15 Correct 515 ms 22292 KB Output is correct
16 Correct 6 ms 12756 KB Output is correct
17 Correct 1390 ms 22560 KB Output is correct
18 Correct 838 ms 23568 KB Output is correct
19 Correct 1360 ms 22852 KB Output is correct
20 Correct 1388 ms 22640 KB Output is correct
21 Correct 1395 ms 22776 KB Output is correct
22 Correct 808 ms 23584 KB Output is correct
23 Correct 1303 ms 22552 KB Output is correct
24 Correct 1439 ms 23064 KB Output is correct
25 Correct 1336 ms 22976 KB Output is correct
26 Correct 1437 ms 23084 KB Output is correct
27 Correct 508 ms 21300 KB Output is correct
28 Correct 502 ms 21204 KB Output is correct
29 Correct 505 ms 21288 KB Output is correct
30 Correct 1696 ms 19512 KB Output is correct
31 Correct 1574 ms 19464 KB Output is correct
32 Correct 2814 ms 20496 KB Output is correct
33 Correct 2178 ms 20084 KB Output is correct
34 Correct 2856 ms 19736 KB Output is correct
35 Correct 2582 ms 19164 KB Output is correct
36 Correct 2467 ms 20388 KB Output is correct
37 Correct 771 ms 20568 KB Output is correct
38 Correct 749 ms 20592 KB Output is correct
39 Correct 690 ms 23124 KB Output is correct
40 Correct 697 ms 23012 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 12756 KB Output is correct
2 Correct 476 ms 22480 KB Output is correct
3 Correct 924 ms 22304 KB Output is correct
4 Correct 473 ms 22524 KB Output is correct
5 Correct 903 ms 22280 KB Output is correct
6 Correct 353 ms 20696 KB Output is correct
7 Correct 1047 ms 19292 KB Output is correct
8 Correct 360 ms 20724 KB Output is correct
9 Correct 1130 ms 19256 KB Output is correct
10 Correct 1872 ms 19788 KB Output is correct
11 Correct 2248 ms 19776 KB Output is correct
12 Correct 623 ms 20356 KB Output is correct
13 Correct 590 ms 20380 KB Output is correct
14 Correct 495 ms 22596 KB Output is correct
15 Correct 515 ms 22292 KB Output is correct
16 Correct 6 ms 12756 KB Output is correct
17 Correct 2787 ms 22640 KB Output is correct
18 Correct 1876 ms 24996 KB Output is correct
19 Correct 2532 ms 22488 KB Output is correct
20 Correct 1686 ms 24944 KB Output is correct
21 Correct 2636 ms 22648 KB Output is correct
22 Correct 1872 ms 24904 KB Output is correct
23 Correct 2992 ms 22588 KB Output is correct
24 Correct 1823 ms 24896 KB Output is correct
25 Correct 2591 ms 22376 KB Output is correct
26 Correct 725 ms 21764 KB Output is correct
27 Correct 844 ms 21956 KB Output is correct
28 Correct 1684 ms 23080 KB Output is correct
29 Correct 742 ms 21796 KB Output is correct
30 Correct 836 ms 21908 KB Output is correct
31 Correct 2102 ms 23380 KB Output is correct
32 Correct 3117 ms 24096 KB Output is correct
33 Correct 2787 ms 19896 KB Output is correct
34 Correct 2703 ms 24580 KB Output is correct
35 Correct 2403 ms 20068 KB Output is correct
36 Correct 2950 ms 23632 KB Output is correct
37 Correct 1471 ms 22808 KB Output is correct
38 Correct 1127 ms 22256 KB Output is correct
39 Correct 971 ms 23552 KB Output is correct
40 Correct 769 ms 23188 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 12756 KB Output is correct
2 Correct 6 ms 12756 KB Output is correct
3 Correct 6 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 15 ms 12884 KB Output is correct
6 Correct 10 ms 12908 KB Output is correct
7 Correct 13 ms 12912 KB Output is correct
8 Correct 12 ms 12912 KB Output is correct
9 Correct 10 ms 12884 KB Output is correct
10 Correct 8 ms 12884 KB Output is correct
11 Correct 7 ms 12884 KB Output is correct
12 Correct 11 ms 12904 KB Output is correct
13 Correct 10 ms 12884 KB Output is correct
14 Correct 15 ms 12908 KB Output is correct
15 Correct 14 ms 12888 KB Output is correct
16 Correct 14 ms 12888 KB Output is correct
17 Correct 10 ms 12884 KB Output is correct
18 Correct 10 ms 12884 KB Output is correct
19 Correct 9 ms 12884 KB Output is correct
20 Correct 8 ms 12840 KB Output is correct
21 Correct 5 ms 12756 KB Output is correct
22 Correct 476 ms 22480 KB Output is correct
23 Correct 924 ms 22304 KB Output is correct
24 Correct 473 ms 22524 KB Output is correct
25 Correct 903 ms 22280 KB Output is correct
26 Correct 353 ms 20696 KB Output is correct
27 Correct 1047 ms 19292 KB Output is correct
28 Correct 360 ms 20724 KB Output is correct
29 Correct 1130 ms 19256 KB Output is correct
30 Correct 1872 ms 19788 KB Output is correct
31 Correct 2248 ms 19776 KB Output is correct
32 Correct 623 ms 20356 KB Output is correct
33 Correct 590 ms 20380 KB Output is correct
34 Correct 495 ms 22596 KB Output is correct
35 Correct 515 ms 22292 KB Output is correct
36 Correct 460 ms 23172 KB Output is correct
37 Correct 929 ms 22548 KB Output is correct
38 Correct 952 ms 21828 KB Output is correct
39 Correct 455 ms 23156 KB Output is correct
40 Correct 892 ms 21716 KB Output is correct
41 Correct 368 ms 20756 KB Output is correct
42 Correct 355 ms 20748 KB Output is correct
43 Correct 1014 ms 19336 KB Output is correct
44 Correct 964 ms 19408 KB Output is correct
45 Correct 1970 ms 20356 KB Output is correct
46 Correct 1934 ms 19784 KB Output is correct
47 Correct 2182 ms 18636 KB Output is correct
48 Correct 623 ms 20408 KB Output is correct
49 Correct 523 ms 20300 KB Output is correct
50 Correct 502 ms 22492 KB Output is correct
51 Correct 530 ms 22364 KB Output is correct
52 Correct 506 ms 22584 KB Output is correct
53 Correct 6 ms 12756 KB Output is correct
54 Correct 1390 ms 22560 KB Output is correct
55 Correct 838 ms 23568 KB Output is correct
56 Correct 1360 ms 22852 KB Output is correct
57 Correct 1388 ms 22640 KB Output is correct
58 Correct 1395 ms 22776 KB Output is correct
59 Correct 808 ms 23584 KB Output is correct
60 Correct 1303 ms 22552 KB Output is correct
61 Correct 1439 ms 23064 KB Output is correct
62 Correct 1336 ms 22976 KB Output is correct
63 Correct 1437 ms 23084 KB Output is correct
64 Correct 508 ms 21300 KB Output is correct
65 Correct 502 ms 21204 KB Output is correct
66 Correct 505 ms 21288 KB Output is correct
67 Correct 1696 ms 19512 KB Output is correct
68 Correct 1574 ms 19464 KB Output is correct
69 Correct 2814 ms 20496 KB Output is correct
70 Correct 2178 ms 20084 KB Output is correct
71 Correct 2856 ms 19736 KB Output is correct
72 Correct 2582 ms 19164 KB Output is correct
73 Correct 2467 ms 20388 KB Output is correct
74 Correct 771 ms 20568 KB Output is correct
75 Correct 749 ms 20592 KB Output is correct
76 Correct 690 ms 23124 KB Output is correct
77 Correct 697 ms 23012 KB Output is correct
78 Correct 6 ms 12756 KB Output is correct
79 Correct 2787 ms 22640 KB Output is correct
80 Correct 1876 ms 24996 KB Output is correct
81 Correct 2532 ms 22488 KB Output is correct
82 Correct 1686 ms 24944 KB Output is correct
83 Correct 2636 ms 22648 KB Output is correct
84 Correct 1872 ms 24904 KB Output is correct
85 Correct 2992 ms 22588 KB Output is correct
86 Correct 1823 ms 24896 KB Output is correct
87 Correct 2591 ms 22376 KB Output is correct
88 Correct 725 ms 21764 KB Output is correct
89 Correct 844 ms 21956 KB Output is correct
90 Correct 1684 ms 23080 KB Output is correct
91 Correct 742 ms 21796 KB Output is correct
92 Correct 836 ms 21908 KB Output is correct
93 Correct 2102 ms 23380 KB Output is correct
94 Correct 3117 ms 24096 KB Output is correct
95 Correct 2787 ms 19896 KB Output is correct
96 Correct 2703 ms 24580 KB Output is correct
97 Correct 2403 ms 20068 KB Output is correct
98 Correct 2950 ms 23632 KB Output is correct
99 Correct 1471 ms 22808 KB Output is correct
100 Correct 1127 ms 22256 KB Output is correct
101 Correct 971 ms 23552 KB Output is correct
102 Correct 769 ms 23188 KB Output is correct
103 Correct 3108 ms 21972 KB Output is correct
104 Correct 1409 ms 25024 KB Output is correct
105 Correct 1727 ms 22920 KB Output is correct
106 Correct 1408 ms 24096 KB Output is correct
107 Correct 2785 ms 22396 KB Output is correct
108 Correct 1369 ms 25048 KB Output is correct
109 Correct 1850 ms 22420 KB Output is correct
110 Correct 1524 ms 24540 KB Output is correct
111 Correct 1727 ms 22956 KB Output is correct
112 Correct 1443 ms 24104 KB Output is correct
113 Correct 791 ms 21856 KB Output is correct
114 Correct 540 ms 21372 KB Output is correct
115 Correct 1839 ms 23356 KB Output is correct
116 Correct 1571 ms 22644 KB Output is correct
117 Correct 584 ms 21604 KB Output is correct
118 Correct 1387 ms 21084 KB Output is correct
119 Correct 843 ms 21904 KB Output is correct
120 Correct 1737 ms 23168 KB Output is correct
121 Correct 1592 ms 22336 KB Output is correct
122 Correct 3127 ms 24056 KB Output is correct
123 Correct 2801 ms 19408 KB Output is correct
124 Correct 2748 ms 21880 KB Output is correct
125 Correct 2573 ms 19096 KB Output is correct
126 Correct 2709 ms 21168 KB Output is correct
127 Correct 1430 ms 22788 KB Output is correct
128 Correct 883 ms 21240 KB Output is correct
129 Correct 1059 ms 23432 KB Output is correct
130 Correct 812 ms 23188 KB Output is correct