답안 #797192

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
797192 2023-07-29T07:51:07 Z eltu0815 Fish 2 (JOI22_fish2) C++14
100 / 100
3269 ms 27412 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)) {
            assert(q || seg[node].empty() || (q == 0 && seg[node].back().first >= l && seg[node].back().second <= r));
            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:146:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  146 |         int mid = str + ed >> 1;
      |                   ~~~~^~~~
fish2.cpp: In function 'void update(int)':
fish2.cpp:185:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
  185 |     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 7 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 15 ms 12904 KB Output is correct
6 Correct 10 ms 12884 KB Output is correct
7 Correct 13 ms 12884 KB Output is correct
8 Correct 12 ms 12884 KB Output is correct
9 Correct 10 ms 12864 KB Output is correct
10 Correct 9 ms 12884 KB Output is correct
11 Correct 8 ms 12884 KB Output is correct
12 Correct 11 ms 12864 KB Output is correct
13 Correct 10 ms 12932 KB Output is correct
14 Correct 13 ms 12916 KB Output is correct
15 Correct 14 ms 12884 KB Output is correct
16 Correct 14 ms 12896 KB Output is correct
17 Correct 10 ms 12812 KB Output is correct
18 Correct 9 ms 12836 KB Output is correct
19 Correct 9 ms 12856 KB Output is correct
20 Correct 9 ms 12884 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 12756 KB Output is correct
2 Correct 469 ms 22508 KB Output is correct
3 Correct 925 ms 22204 KB Output is correct
4 Correct 479 ms 22548 KB Output is correct
5 Correct 904 ms 22220 KB Output is correct
6 Correct 354 ms 20656 KB Output is correct
7 Correct 1054 ms 19236 KB Output is correct
8 Correct 360 ms 20724 KB Output is correct
9 Correct 1138 ms 19292 KB Output is correct
10 Correct 1885 ms 19696 KB Output is correct
11 Correct 2227 ms 19784 KB Output is correct
12 Correct 630 ms 20400 KB Output is correct
13 Correct 584 ms 20292 KB Output is correct
14 Correct 505 ms 22604 KB Output is correct
15 Correct 517 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 7 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 15 ms 12904 KB Output is correct
6 Correct 10 ms 12884 KB Output is correct
7 Correct 13 ms 12884 KB Output is correct
8 Correct 12 ms 12884 KB Output is correct
9 Correct 10 ms 12864 KB Output is correct
10 Correct 9 ms 12884 KB Output is correct
11 Correct 8 ms 12884 KB Output is correct
12 Correct 11 ms 12864 KB Output is correct
13 Correct 10 ms 12932 KB Output is correct
14 Correct 13 ms 12916 KB Output is correct
15 Correct 14 ms 12884 KB Output is correct
16 Correct 14 ms 12896 KB Output is correct
17 Correct 10 ms 12812 KB Output is correct
18 Correct 9 ms 12836 KB Output is correct
19 Correct 9 ms 12856 KB Output is correct
20 Correct 9 ms 12884 KB Output is correct
21 Correct 7 ms 12756 KB Output is correct
22 Correct 469 ms 22508 KB Output is correct
23 Correct 925 ms 22204 KB Output is correct
24 Correct 479 ms 22548 KB Output is correct
25 Correct 904 ms 22220 KB Output is correct
26 Correct 354 ms 20656 KB Output is correct
27 Correct 1054 ms 19236 KB Output is correct
28 Correct 360 ms 20724 KB Output is correct
29 Correct 1138 ms 19292 KB Output is correct
30 Correct 1885 ms 19696 KB Output is correct
31 Correct 2227 ms 19784 KB Output is correct
32 Correct 630 ms 20400 KB Output is correct
33 Correct 584 ms 20292 KB Output is correct
34 Correct 505 ms 22604 KB Output is correct
35 Correct 517 ms 22292 KB Output is correct
36 Correct 460 ms 23784 KB Output is correct
37 Correct 935 ms 22772 KB Output is correct
38 Correct 933 ms 22092 KB Output is correct
39 Correct 473 ms 23856 KB Output is correct
40 Correct 895 ms 22092 KB Output is correct
41 Correct 361 ms 21728 KB Output is correct
42 Correct 362 ms 21688 KB Output is correct
43 Correct 1026 ms 19584 KB Output is correct
44 Correct 971 ms 19520 KB Output is correct
45 Correct 1985 ms 20792 KB Output is correct
46 Correct 1923 ms 20284 KB Output is correct
47 Correct 2195 ms 19008 KB Output is correct
48 Correct 617 ms 20608 KB Output is correct
49 Correct 533 ms 20628 KB Output is correct
50 Correct 517 ms 23164 KB Output is correct
51 Correct 524 ms 22988 KB Output is correct
52 Correct 509 ms 23204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 12756 KB Output is correct
2 Correct 469 ms 22508 KB Output is correct
3 Correct 925 ms 22204 KB Output is correct
4 Correct 479 ms 22548 KB Output is correct
5 Correct 904 ms 22220 KB Output is correct
6 Correct 354 ms 20656 KB Output is correct
7 Correct 1054 ms 19236 KB Output is correct
8 Correct 360 ms 20724 KB Output is correct
9 Correct 1138 ms 19292 KB Output is correct
10 Correct 1885 ms 19696 KB Output is correct
11 Correct 2227 ms 19784 KB Output is correct
12 Correct 630 ms 20400 KB Output is correct
13 Correct 584 ms 20292 KB Output is correct
14 Correct 505 ms 22604 KB Output is correct
15 Correct 517 ms 22292 KB Output is correct
16 Correct 6 ms 12756 KB Output is correct
17 Correct 1375 ms 22560 KB Output is correct
18 Correct 803 ms 23616 KB Output is correct
19 Correct 1362 ms 22884 KB Output is correct
20 Correct 1415 ms 22756 KB Output is correct
21 Correct 1391 ms 22712 KB Output is correct
22 Correct 816 ms 23600 KB Output is correct
23 Correct 1323 ms 22436 KB Output is correct
24 Correct 1448 ms 23232 KB Output is correct
25 Correct 1350 ms 23068 KB Output is correct
26 Correct 1460 ms 23088 KB Output is correct
27 Correct 497 ms 21212 KB Output is correct
28 Correct 498 ms 21192 KB Output is correct
29 Correct 536 ms 21324 KB Output is correct
30 Correct 1710 ms 19528 KB Output is correct
31 Correct 1584 ms 19588 KB Output is correct
32 Correct 2890 ms 20372 KB Output is correct
33 Correct 2184 ms 20164 KB Output is correct
34 Correct 2955 ms 19700 KB Output is correct
35 Correct 2632 ms 19164 KB Output is correct
36 Correct 2537 ms 20456 KB Output is correct
37 Correct 825 ms 20620 KB Output is correct
38 Correct 783 ms 20680 KB Output is correct
39 Correct 720 ms 23116 KB Output is correct
40 Correct 749 ms 23032 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 12756 KB Output is correct
2 Correct 469 ms 22508 KB Output is correct
3 Correct 925 ms 22204 KB Output is correct
4 Correct 479 ms 22548 KB Output is correct
5 Correct 904 ms 22220 KB Output is correct
6 Correct 354 ms 20656 KB Output is correct
7 Correct 1054 ms 19236 KB Output is correct
8 Correct 360 ms 20724 KB Output is correct
9 Correct 1138 ms 19292 KB Output is correct
10 Correct 1885 ms 19696 KB Output is correct
11 Correct 2227 ms 19784 KB Output is correct
12 Correct 630 ms 20400 KB Output is correct
13 Correct 584 ms 20292 KB Output is correct
14 Correct 505 ms 22604 KB Output is correct
15 Correct 517 ms 22292 KB Output is correct
16 Correct 6 ms 12756 KB Output is correct
17 Correct 2818 ms 22964 KB Output is correct
18 Correct 1992 ms 25056 KB Output is correct
19 Correct 2625 ms 23880 KB Output is correct
20 Correct 1698 ms 26832 KB Output is correct
21 Correct 2650 ms 24128 KB Output is correct
22 Correct 1861 ms 26868 KB Output is correct
23 Correct 2844 ms 23980 KB Output is correct
24 Correct 1819 ms 26836 KB Output is correct
25 Correct 2637 ms 23824 KB Output is correct
26 Correct 732 ms 24344 KB Output is correct
27 Correct 855 ms 24968 KB Output is correct
28 Correct 1700 ms 24908 KB Output is correct
29 Correct 792 ms 24376 KB Output is correct
30 Correct 850 ms 24636 KB Output is correct
31 Correct 2113 ms 25124 KB Output is correct
32 Correct 3155 ms 25908 KB Output is correct
33 Correct 2844 ms 21312 KB Output is correct
34 Correct 2728 ms 26520 KB Output is correct
35 Correct 2422 ms 21604 KB Output is correct
36 Correct 2985 ms 25436 KB Output is correct
37 Correct 1565 ms 24324 KB Output is correct
38 Correct 1146 ms 23648 KB Output is correct
39 Correct 971 ms 25468 KB Output is correct
40 Correct 766 ms 24972 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 7 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 15 ms 12904 KB Output is correct
6 Correct 10 ms 12884 KB Output is correct
7 Correct 13 ms 12884 KB Output is correct
8 Correct 12 ms 12884 KB Output is correct
9 Correct 10 ms 12864 KB Output is correct
10 Correct 9 ms 12884 KB Output is correct
11 Correct 8 ms 12884 KB Output is correct
12 Correct 11 ms 12864 KB Output is correct
13 Correct 10 ms 12932 KB Output is correct
14 Correct 13 ms 12916 KB Output is correct
15 Correct 14 ms 12884 KB Output is correct
16 Correct 14 ms 12896 KB Output is correct
17 Correct 10 ms 12812 KB Output is correct
18 Correct 9 ms 12836 KB Output is correct
19 Correct 9 ms 12856 KB Output is correct
20 Correct 9 ms 12884 KB Output is correct
21 Correct 7 ms 12756 KB Output is correct
22 Correct 469 ms 22508 KB Output is correct
23 Correct 925 ms 22204 KB Output is correct
24 Correct 479 ms 22548 KB Output is correct
25 Correct 904 ms 22220 KB Output is correct
26 Correct 354 ms 20656 KB Output is correct
27 Correct 1054 ms 19236 KB Output is correct
28 Correct 360 ms 20724 KB Output is correct
29 Correct 1138 ms 19292 KB Output is correct
30 Correct 1885 ms 19696 KB Output is correct
31 Correct 2227 ms 19784 KB Output is correct
32 Correct 630 ms 20400 KB Output is correct
33 Correct 584 ms 20292 KB Output is correct
34 Correct 505 ms 22604 KB Output is correct
35 Correct 517 ms 22292 KB Output is correct
36 Correct 460 ms 23784 KB Output is correct
37 Correct 935 ms 22772 KB Output is correct
38 Correct 933 ms 22092 KB Output is correct
39 Correct 473 ms 23856 KB Output is correct
40 Correct 895 ms 22092 KB Output is correct
41 Correct 361 ms 21728 KB Output is correct
42 Correct 362 ms 21688 KB Output is correct
43 Correct 1026 ms 19584 KB Output is correct
44 Correct 971 ms 19520 KB Output is correct
45 Correct 1985 ms 20792 KB Output is correct
46 Correct 1923 ms 20284 KB Output is correct
47 Correct 2195 ms 19008 KB Output is correct
48 Correct 617 ms 20608 KB Output is correct
49 Correct 533 ms 20628 KB Output is correct
50 Correct 517 ms 23164 KB Output is correct
51 Correct 524 ms 22988 KB Output is correct
52 Correct 509 ms 23204 KB Output is correct
53 Correct 6 ms 12756 KB Output is correct
54 Correct 1375 ms 22560 KB Output is correct
55 Correct 803 ms 23616 KB Output is correct
56 Correct 1362 ms 22884 KB Output is correct
57 Correct 1415 ms 22756 KB Output is correct
58 Correct 1391 ms 22712 KB Output is correct
59 Correct 816 ms 23600 KB Output is correct
60 Correct 1323 ms 22436 KB Output is correct
61 Correct 1448 ms 23232 KB Output is correct
62 Correct 1350 ms 23068 KB Output is correct
63 Correct 1460 ms 23088 KB Output is correct
64 Correct 497 ms 21212 KB Output is correct
65 Correct 498 ms 21192 KB Output is correct
66 Correct 536 ms 21324 KB Output is correct
67 Correct 1710 ms 19528 KB Output is correct
68 Correct 1584 ms 19588 KB Output is correct
69 Correct 2890 ms 20372 KB Output is correct
70 Correct 2184 ms 20164 KB Output is correct
71 Correct 2955 ms 19700 KB Output is correct
72 Correct 2632 ms 19164 KB Output is correct
73 Correct 2537 ms 20456 KB Output is correct
74 Correct 825 ms 20620 KB Output is correct
75 Correct 783 ms 20680 KB Output is correct
76 Correct 720 ms 23116 KB Output is correct
77 Correct 749 ms 23032 KB Output is correct
78 Correct 6 ms 12756 KB Output is correct
79 Correct 2818 ms 22964 KB Output is correct
80 Correct 1992 ms 25056 KB Output is correct
81 Correct 2625 ms 23880 KB Output is correct
82 Correct 1698 ms 26832 KB Output is correct
83 Correct 2650 ms 24128 KB Output is correct
84 Correct 1861 ms 26868 KB Output is correct
85 Correct 2844 ms 23980 KB Output is correct
86 Correct 1819 ms 26836 KB Output is correct
87 Correct 2637 ms 23824 KB Output is correct
88 Correct 732 ms 24344 KB Output is correct
89 Correct 855 ms 24968 KB Output is correct
90 Correct 1700 ms 24908 KB Output is correct
91 Correct 792 ms 24376 KB Output is correct
92 Correct 850 ms 24636 KB Output is correct
93 Correct 2113 ms 25124 KB Output is correct
94 Correct 3155 ms 25908 KB Output is correct
95 Correct 2844 ms 21312 KB Output is correct
96 Correct 2728 ms 26520 KB Output is correct
97 Correct 2422 ms 21604 KB Output is correct
98 Correct 2985 ms 25436 KB Output is correct
99 Correct 1565 ms 24324 KB Output is correct
100 Correct 1146 ms 23648 KB Output is correct
101 Correct 971 ms 25468 KB Output is correct
102 Correct 766 ms 24972 KB Output is correct
103 Correct 3180 ms 23372 KB Output is correct
104 Correct 1396 ms 27148 KB Output is correct
105 Correct 1720 ms 24700 KB Output is correct
106 Correct 1426 ms 25764 KB Output is correct
107 Correct 2854 ms 23752 KB Output is correct
108 Correct 1406 ms 27412 KB Output is correct
109 Correct 1888 ms 23932 KB Output is correct
110 Correct 1585 ms 26324 KB Output is correct
111 Correct 1744 ms 24576 KB Output is correct
112 Correct 1470 ms 25672 KB Output is correct
113 Correct 779 ms 24396 KB Output is correct
114 Correct 556 ms 23756 KB Output is correct
115 Correct 1857 ms 25192 KB Output is correct
116 Correct 1595 ms 24372 KB Output is correct
117 Correct 631 ms 23808 KB Output is correct
118 Correct 1420 ms 22676 KB Output is correct
119 Correct 867 ms 24608 KB Output is correct
120 Correct 1754 ms 24964 KB Output is correct
121 Correct 1647 ms 23972 KB Output is correct
122 Correct 3269 ms 25984 KB Output is correct
123 Correct 2786 ms 20908 KB Output is correct
124 Correct 2741 ms 23484 KB Output is correct
125 Correct 2690 ms 20692 KB Output is correct
126 Correct 2793 ms 22744 KB Output is correct
127 Correct 1465 ms 24340 KB Output is correct
128 Correct 871 ms 22852 KB Output is correct
129 Correct 1029 ms 25512 KB Output is correct
130 Correct 824 ms 25148 KB Output is correct