Submission #162841

# Submission time Handle Problem Language Result Execution time Memory
162841 2019-11-10T05:51:58 Z rama_pang Aliens (IOI16_aliens) C++14
100 / 100
223 ms 11444 KB
#include "aliens.h"
#include <bits/stdc++.h>
using namespace std;
using lint = long long;
const lint INF = 1e15;

struct Segment {
    lint left, right;

    Segment(lint l = 0, lint r = 0): left(l), right(r) {}

    bool operator < (const Segment &o) const {
        return left < o.left || (left == o.left && right > o.right);
    }

    bool operator == (const Segment &o) const {
        return left == o.left && right == o.right;
    }

};

struct ConvexHull { // Convex Hull Trick
    struct Line {
        lint m, c;
        int cnt;

        Line(lint M = 0, lint C = INF, int cnt_ = 0): m(M), c(C), cnt(cnt_) {}

        lint get(lint x) {
            return m * x + c;
        }

    };

    vector<Line> hull = {Line(0, INF)};

    int ptr = 0;

    void insert(lint m, lint c, int cnt) {
        hull.emplace_back(Line(m, c, cnt));
        int sz = hull.size() - 1;

        while (ptr <= sz - 2 && (hull[sz - 1].c - hull[sz].c) * (hull[sz - 1].m - hull[sz - 2].m) < 
                                (hull[sz - 2].c - hull[sz - 1].c) * (hull[sz].m - hull[sz - 1].m)) 
            hull[sz - 1] = hull[sz], sz--, hull.pop_back();

    }

    lint query(lint x) {
        while (ptr + 1 < hull.size() && hull[ptr].get(x) > hull[ptr + 1].get(x))
            ptr++;

        return hull[ptr].get(x) + x * x;
    }

    int cnt_query(lint x) {
        query(x);
        return hull[ptr].cnt;
    }

    void clear() {
        hull.clear();
        hull = {Line(0, INF)};
        ptr = 0;
    }

};

int N, K;
vector<Segment> segment;
vector<lint> DP; // find optimal answer in O(N)
vector<int> cnt; // K used in DP[i] (optimal)
ConvexHull hull;

void preprocess(int n, int k, vector<int> r, vector<int> c) {
    for (int i = 0; i < n; i++) 
        segment.emplace_back(min(r[i], c[i]), max(r[i], c[i]));

    sort(segment.begin(), segment.end());

    vector<Segment> tmp;
    tmp.emplace_back(-1, -1);
    
    for (auto s : segment) {
        Segment overlap = Segment(min(tmp.back().left, s.left), max(tmp.back().right, s.right));
        if (overlap == s) swap(s, tmp.back());
        if (overlap == tmp.back()) continue;
        tmp.emplace_back(s);
    }

    segment = tmp, N = segment.size() - 1, K = k;
    DP.assign(N + 1, 0), cnt.assign(N + 1, 0);
}

void computeDP(lint lambda) { // returns number of k used, with each photo having penalty lambda (equals to DP[N][K] + K * lambda)
    DP[0] = cnt[0] = 0, hull.clear();

    for (int n = 1; n <= N; n++) {
        lint m = - 2 * segment[n].left;
        lint c = + segment[n].left * segment[n].left 
                 - max(0ll, segment[n - 1].right - segment[n].left + 1) * 
                   max(0ll, segment[n - 1].right - segment[n].left + 1)
                 + DP[n - 1] + lambda;

        hull.insert(m, c, cnt[n - 1] + 1);

        cnt[n] = hull.cnt_query(segment[n].right + 1);
        DP[n]  = hull.query(segment[n].right + 1);
    }

}

lint take_photos(int n, int m, int k, vector<int> r, vector<int> c) {
    lint opt = INF;
    preprocess(n, k, r, c);

    for (lint le = 0, ri = INF, mid = (le + ri) / 2; le <= ri; mid = (le + ri) / 2) {
        computeDP(mid);
        if (cnt[N] <= K)
            ri = mid - 1, opt = mid;
        else
            le = mid + 1;
    }

    computeDP(opt);
    return DP[N] - K * opt;
}

Compilation message

aliens.cpp: In member function 'lint ConvexHull::query(lint)':
aliens.cpp:50:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while (ptr + 1 < hull.size() && hull[ptr].get(x) > hull[ptr + 1].get(x))
                ~~~~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Correct answer: answer = 4
2 Correct 2 ms 256 KB Correct answer: answer = 4
3 Correct 2 ms 256 KB Correct answer: answer = 4
4 Correct 2 ms 256 KB Correct answer: answer = 12
5 Correct 2 ms 252 KB Correct answer: answer = 52
6 Correct 2 ms 256 KB Correct answer: answer = 210
7 Correct 2 ms 376 KB Correct answer: answer = 88
8 Correct 2 ms 256 KB Correct answer: answer = 7696
9 Correct 2 ms 256 KB Correct answer: answer = 1
10 Correct 11 ms 380 KB Correct answer: answer = 2374
11 Correct 2 ms 380 KB Correct answer: answer = 9502
12 Correct 2 ms 376 KB Correct answer: answer = 49
13 Correct 2 ms 376 KB Correct answer: answer = 151
14 Correct 2 ms 256 KB Correct answer: answer = 7550
15 Correct 2 ms 256 KB Correct answer: answer = 7220
16 Correct 2 ms 380 KB Correct answer: answer = 7550
17 Correct 2 ms 256 KB Correct answer: answer = 10000
18 Correct 2 ms 256 KB Correct answer: answer = 10000
19 Correct 2 ms 376 KB Correct answer: answer = 624
20 Correct 2 ms 256 KB Correct answer: answer = 10000
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Correct answer: answer = 1
2 Correct 2 ms 256 KB Correct answer: answer = 4
3 Correct 2 ms 252 KB Correct answer: answer = 1
4 Correct 2 ms 376 KB Correct answer: answer = 5
5 Correct 2 ms 376 KB Correct answer: answer = 41
6 Correct 2 ms 308 KB Correct answer: answer = 71923
7 Correct 3 ms 376 KB Correct answer: answer = 77137
8 Correct 3 ms 376 KB Correct answer: answer = 764
9 Correct 3 ms 376 KB Correct answer: answer = 250000
10 Correct 3 ms 376 KB Correct answer: answer = 500
11 Correct 2 ms 256 KB Correct answer: answer = 32
12 Correct 3 ms 504 KB Correct answer: answer = 130050
13 Correct 3 ms 376 KB Correct answer: answer = 5110
14 Correct 3 ms 376 KB Correct answer: answer = 2626
15 Correct 2 ms 376 KB Correct answer: answer = 796
16 Correct 3 ms 376 KB Correct answer: answer = 7580
17 Correct 3 ms 380 KB Correct answer: answer = 1904
18 Correct 3 ms 380 KB Correct answer: answer = 996004
19 Correct 3 ms 376 KB Correct answer: answer = 38817
20 Correct 3 ms 376 KB Correct answer: answer = 4096
21 Correct 2 ms 376 KB Correct answer: answer = 1
22 Correct 2 ms 376 KB Correct answer: answer = 1
23 Correct 3 ms 376 KB Correct answer: answer = 2040
24 Correct 2 ms 376 KB Correct answer: answer = 2
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Correct answer: answer = 4
2 Correct 2 ms 256 KB Correct answer: answer = 4
3 Correct 2 ms 256 KB Correct answer: answer = 4
4 Correct 2 ms 256 KB Correct answer: answer = 12
5 Correct 2 ms 252 KB Correct answer: answer = 52
6 Correct 2 ms 256 KB Correct answer: answer = 210
7 Correct 2 ms 376 KB Correct answer: answer = 88
8 Correct 2 ms 256 KB Correct answer: answer = 7696
9 Correct 2 ms 256 KB Correct answer: answer = 1
10 Correct 11 ms 380 KB Correct answer: answer = 2374
11 Correct 2 ms 380 KB Correct answer: answer = 9502
12 Correct 2 ms 376 KB Correct answer: answer = 49
13 Correct 2 ms 376 KB Correct answer: answer = 151
14 Correct 2 ms 256 KB Correct answer: answer = 7550
15 Correct 2 ms 256 KB Correct answer: answer = 7220
16 Correct 2 ms 380 KB Correct answer: answer = 7550
17 Correct 2 ms 256 KB Correct answer: answer = 10000
18 Correct 2 ms 256 KB Correct answer: answer = 10000
19 Correct 2 ms 376 KB Correct answer: answer = 624
20 Correct 2 ms 256 KB Correct answer: answer = 10000
21 Correct 2 ms 376 KB Correct answer: answer = 1
22 Correct 2 ms 256 KB Correct answer: answer = 4
23 Correct 2 ms 252 KB Correct answer: answer = 1
24 Correct 2 ms 376 KB Correct answer: answer = 5
25 Correct 2 ms 376 KB Correct answer: answer = 41
26 Correct 2 ms 308 KB Correct answer: answer = 71923
27 Correct 3 ms 376 KB Correct answer: answer = 77137
28 Correct 3 ms 376 KB Correct answer: answer = 764
29 Correct 3 ms 376 KB Correct answer: answer = 250000
30 Correct 3 ms 376 KB Correct answer: answer = 500
31 Correct 2 ms 256 KB Correct answer: answer = 32
32 Correct 3 ms 504 KB Correct answer: answer = 130050
33 Correct 3 ms 376 KB Correct answer: answer = 5110
34 Correct 3 ms 376 KB Correct answer: answer = 2626
35 Correct 2 ms 376 KB Correct answer: answer = 796
36 Correct 3 ms 376 KB Correct answer: answer = 7580
37 Correct 3 ms 380 KB Correct answer: answer = 1904
38 Correct 3 ms 380 KB Correct answer: answer = 996004
39 Correct 3 ms 376 KB Correct answer: answer = 38817
40 Correct 3 ms 376 KB Correct answer: answer = 4096
41 Correct 2 ms 376 KB Correct answer: answer = 1
42 Correct 2 ms 376 KB Correct answer: answer = 1
43 Correct 3 ms 376 KB Correct answer: answer = 2040
44 Correct 2 ms 376 KB Correct answer: answer = 2
45 Correct 2 ms 376 KB Correct answer: answer = 4
46 Correct 2 ms 376 KB Correct answer: answer = 9
47 Correct 2 ms 376 KB Correct answer: answer = 9
48 Correct 2 ms 376 KB Correct answer: answer = 21
49 Correct 2 ms 252 KB Correct answer: answer = 71
50 Correct 2 ms 376 KB Correct answer: answer = 77
51 Correct 2 ms 376 KB Correct answer: answer = 400
52 Correct 2 ms 376 KB Correct answer: answer = 996004
53 Correct 4 ms 380 KB Correct answer: answer = 997310
54 Correct 2 ms 376 KB Correct answer: answer = 990781
55 Correct 2 ms 376 KB Correct answer: answer = 996545
56 Correct 3 ms 376 KB Correct answer: answer = 484
57 Correct 2 ms 376 KB Correct answer: answer = 484
58 Correct 3 ms 376 KB Correct answer: answer = 63501
59 Correct 4 ms 376 KB Correct answer: answer = 323501
60 Correct 3 ms 376 KB Correct answer: answer = 752500
61 Correct 3 ms 376 KB Correct answer: answer = 761480
62 Correct 3 ms 376 KB Correct answer: answer = 758932
63 Correct 2 ms 376 KB Correct answer: answer = 1000000
64 Correct 3 ms 376 KB Correct answer: answer = 750500
65 Correct 2 ms 376 KB Correct answer: answer = 1000000
66 Correct 2 ms 376 KB Correct answer: answer = 250000
67 Correct 2 ms 376 KB Correct answer: answer = 250000
68 Correct 2 ms 376 KB Correct answer: answer = 1000000
69 Correct 2 ms 376 KB Correct answer: answer = 994009
70 Correct 2 ms 376 KB Correct answer: answer = 59315
71 Correct 2 ms 376 KB Correct answer: answer = 25454
72 Correct 3 ms 376 KB Correct answer: answer = 1504
73 Correct 2 ms 380 KB Correct answer: answer = 37486
74 Correct 3 ms 376 KB Correct answer: answer = 4284
75 Correct 2 ms 364 KB Correct answer: answer = 158008
76 Correct 15 ms 376 KB Correct answer: answer = 51860
77 Correct 2 ms 376 KB Correct answer: answer = 12985
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Correct answer: answer = 4
2 Correct 2 ms 256 KB Correct answer: answer = 4
3 Correct 2 ms 256 KB Correct answer: answer = 4
4 Correct 2 ms 256 KB Correct answer: answer = 12
5 Correct 2 ms 252 KB Correct answer: answer = 52
6 Correct 2 ms 256 KB Correct answer: answer = 210
7 Correct 2 ms 376 KB Correct answer: answer = 88
8 Correct 2 ms 256 KB Correct answer: answer = 7696
9 Correct 2 ms 256 KB Correct answer: answer = 1
10 Correct 11 ms 380 KB Correct answer: answer = 2374
11 Correct 2 ms 380 KB Correct answer: answer = 9502
12 Correct 2 ms 376 KB Correct answer: answer = 49
13 Correct 2 ms 376 KB Correct answer: answer = 151
14 Correct 2 ms 256 KB Correct answer: answer = 7550
15 Correct 2 ms 256 KB Correct answer: answer = 7220
16 Correct 2 ms 380 KB Correct answer: answer = 7550
17 Correct 2 ms 256 KB Correct answer: answer = 10000
18 Correct 2 ms 256 KB Correct answer: answer = 10000
19 Correct 2 ms 376 KB Correct answer: answer = 624
20 Correct 2 ms 256 KB Correct answer: answer = 10000
21 Correct 2 ms 376 KB Correct answer: answer = 1
22 Correct 2 ms 256 KB Correct answer: answer = 4
23 Correct 2 ms 252 KB Correct answer: answer = 1
24 Correct 2 ms 376 KB Correct answer: answer = 5
25 Correct 2 ms 376 KB Correct answer: answer = 41
26 Correct 2 ms 308 KB Correct answer: answer = 71923
27 Correct 3 ms 376 KB Correct answer: answer = 77137
28 Correct 3 ms 376 KB Correct answer: answer = 764
29 Correct 3 ms 376 KB Correct answer: answer = 250000
30 Correct 3 ms 376 KB Correct answer: answer = 500
31 Correct 2 ms 256 KB Correct answer: answer = 32
32 Correct 3 ms 504 KB Correct answer: answer = 130050
33 Correct 3 ms 376 KB Correct answer: answer = 5110
34 Correct 3 ms 376 KB Correct answer: answer = 2626
35 Correct 2 ms 376 KB Correct answer: answer = 796
36 Correct 3 ms 376 KB Correct answer: answer = 7580
37 Correct 3 ms 380 KB Correct answer: answer = 1904
38 Correct 3 ms 380 KB Correct answer: answer = 996004
39 Correct 3 ms 376 KB Correct answer: answer = 38817
40 Correct 3 ms 376 KB Correct answer: answer = 4096
41 Correct 2 ms 376 KB Correct answer: answer = 1
42 Correct 2 ms 376 KB Correct answer: answer = 1
43 Correct 3 ms 376 KB Correct answer: answer = 2040
44 Correct 2 ms 376 KB Correct answer: answer = 2
45 Correct 2 ms 376 KB Correct answer: answer = 4
46 Correct 2 ms 376 KB Correct answer: answer = 9
47 Correct 2 ms 376 KB Correct answer: answer = 9
48 Correct 2 ms 376 KB Correct answer: answer = 21
49 Correct 2 ms 252 KB Correct answer: answer = 71
50 Correct 2 ms 376 KB Correct answer: answer = 77
51 Correct 2 ms 376 KB Correct answer: answer = 400
52 Correct 2 ms 376 KB Correct answer: answer = 996004
53 Correct 4 ms 380 KB Correct answer: answer = 997310
54 Correct 2 ms 376 KB Correct answer: answer = 990781
55 Correct 2 ms 376 KB Correct answer: answer = 996545
56 Correct 3 ms 376 KB Correct answer: answer = 484
57 Correct 2 ms 376 KB Correct answer: answer = 484
58 Correct 3 ms 376 KB Correct answer: answer = 63501
59 Correct 4 ms 376 KB Correct answer: answer = 323501
60 Correct 3 ms 376 KB Correct answer: answer = 752500
61 Correct 3 ms 376 KB Correct answer: answer = 761480
62 Correct 3 ms 376 KB Correct answer: answer = 758932
63 Correct 2 ms 376 KB Correct answer: answer = 1000000
64 Correct 3 ms 376 KB Correct answer: answer = 750500
65 Correct 2 ms 376 KB Correct answer: answer = 1000000
66 Correct 2 ms 376 KB Correct answer: answer = 250000
67 Correct 2 ms 376 KB Correct answer: answer = 250000
68 Correct 2 ms 376 KB Correct answer: answer = 1000000
69 Correct 2 ms 376 KB Correct answer: answer = 994009
70 Correct 2 ms 376 KB Correct answer: answer = 59315
71 Correct 2 ms 376 KB Correct answer: answer = 25454
72 Correct 3 ms 376 KB Correct answer: answer = 1504
73 Correct 2 ms 380 KB Correct answer: answer = 37486
74 Correct 3 ms 376 KB Correct answer: answer = 4284
75 Correct 2 ms 364 KB Correct answer: answer = 158008
76 Correct 15 ms 376 KB Correct answer: answer = 51860
77 Correct 2 ms 376 KB Correct answer: answer = 12985
78 Correct 4 ms 604 KB Correct answer: answer = 997864126212
79 Correct 4 ms 604 KB Correct answer: answer = 998608411647
80 Correct 4 ms 632 KB Correct answer: answer = 995265560477
81 Correct 9 ms 632 KB Correct answer: answer = 10125000
82 Correct 9 ms 732 KB Correct answer: answer = 2291668
83 Correct 6 ms 504 KB Correct answer: answer = 42388
84 Correct 5 ms 504 KB Correct answer: answer = 10318
85 Correct 6 ms 632 KB Correct answer: answer = 3416
86 Correct 11 ms 632 KB Correct answer: answer = 331708193881
87 Correct 11 ms 636 KB Correct answer: answer = 2861193756
88 Correct 11 ms 760 KB Correct answer: answer = 114646930
89 Correct 9 ms 760 KB Correct answer: answer = 9280921
90 Correct 11 ms 692 KB Correct answer: answer = 999984053400
91 Correct 11 ms 604 KB Correct answer: answer = 750935949134
92 Correct 3 ms 504 KB Correct answer: answer = 1000000000000
93 Correct 4 ms 632 KB Correct answer: answer = 998762383161
94 Correct 11 ms 632 KB Correct answer: answer = 23017412908
95 Correct 4 ms 632 KB Correct answer: answer = 728143410622
96 Correct 3 ms 504 KB Correct answer: answer = 2
97 Correct 9 ms 760 KB Correct answer: answer = 1824916
98 Correct 9 ms 632 KB Correct answer: answer = 10680029
99 Correct 9 ms 760 KB Correct answer: answer = 18351700
100 Correct 9 ms 632 KB Correct answer: answer = 16040026
101 Correct 4 ms 504 KB Correct answer: answer = 253968628325
102 Correct 6 ms 504 KB Correct answer: answer = 10267
103 Correct 9 ms 760 KB Correct answer: answer = 2582408
104 Correct 4 ms 632 KB Correct answer: answer = 78024964781
105 Correct 4 ms 604 KB Correct answer: answer = 9866346457
106 Correct 4 ms 632 KB Correct answer: answer = 3327720949
107 Correct 4 ms 632 KB Correct answer: answer = 86064128360
108 Correct 5 ms 632 KB Correct answer: answer = 12698259150
109 Correct 8 ms 632 KB Correct answer: answer = 1185259288
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Correct answer: answer = 4
2 Correct 2 ms 256 KB Correct answer: answer = 4
3 Correct 2 ms 256 KB Correct answer: answer = 4
4 Correct 2 ms 256 KB Correct answer: answer = 12
5 Correct 2 ms 252 KB Correct answer: answer = 52
6 Correct 2 ms 256 KB Correct answer: answer = 210
7 Correct 2 ms 376 KB Correct answer: answer = 88
8 Correct 2 ms 256 KB Correct answer: answer = 7696
9 Correct 2 ms 256 KB Correct answer: answer = 1
10 Correct 11 ms 380 KB Correct answer: answer = 2374
11 Correct 2 ms 380 KB Correct answer: answer = 9502
12 Correct 2 ms 376 KB Correct answer: answer = 49
13 Correct 2 ms 376 KB Correct answer: answer = 151
14 Correct 2 ms 256 KB Correct answer: answer = 7550
15 Correct 2 ms 256 KB Correct answer: answer = 7220
16 Correct 2 ms 380 KB Correct answer: answer = 7550
17 Correct 2 ms 256 KB Correct answer: answer = 10000
18 Correct 2 ms 256 KB Correct answer: answer = 10000
19 Correct 2 ms 376 KB Correct answer: answer = 624
20 Correct 2 ms 256 KB Correct answer: answer = 10000
21 Correct 2 ms 376 KB Correct answer: answer = 1
22 Correct 2 ms 256 KB Correct answer: answer = 4
23 Correct 2 ms 252 KB Correct answer: answer = 1
24 Correct 2 ms 376 KB Correct answer: answer = 5
25 Correct 2 ms 376 KB Correct answer: answer = 41
26 Correct 2 ms 308 KB Correct answer: answer = 71923
27 Correct 3 ms 376 KB Correct answer: answer = 77137
28 Correct 3 ms 376 KB Correct answer: answer = 764
29 Correct 3 ms 376 KB Correct answer: answer = 250000
30 Correct 3 ms 376 KB Correct answer: answer = 500
31 Correct 2 ms 256 KB Correct answer: answer = 32
32 Correct 3 ms 504 KB Correct answer: answer = 130050
33 Correct 3 ms 376 KB Correct answer: answer = 5110
34 Correct 3 ms 376 KB Correct answer: answer = 2626
35 Correct 2 ms 376 KB Correct answer: answer = 796
36 Correct 3 ms 376 KB Correct answer: answer = 7580
37 Correct 3 ms 380 KB Correct answer: answer = 1904
38 Correct 3 ms 380 KB Correct answer: answer = 996004
39 Correct 3 ms 376 KB Correct answer: answer = 38817
40 Correct 3 ms 376 KB Correct answer: answer = 4096
41 Correct 2 ms 376 KB Correct answer: answer = 1
42 Correct 2 ms 376 KB Correct answer: answer = 1
43 Correct 3 ms 376 KB Correct answer: answer = 2040
44 Correct 2 ms 376 KB Correct answer: answer = 2
45 Correct 2 ms 376 KB Correct answer: answer = 4
46 Correct 2 ms 376 KB Correct answer: answer = 9
47 Correct 2 ms 376 KB Correct answer: answer = 9
48 Correct 2 ms 376 KB Correct answer: answer = 21
49 Correct 2 ms 252 KB Correct answer: answer = 71
50 Correct 2 ms 376 KB Correct answer: answer = 77
51 Correct 2 ms 376 KB Correct answer: answer = 400
52 Correct 2 ms 376 KB Correct answer: answer = 996004
53 Correct 4 ms 380 KB Correct answer: answer = 997310
54 Correct 2 ms 376 KB Correct answer: answer = 990781
55 Correct 2 ms 376 KB Correct answer: answer = 996545
56 Correct 3 ms 376 KB Correct answer: answer = 484
57 Correct 2 ms 376 KB Correct answer: answer = 484
58 Correct 3 ms 376 KB Correct answer: answer = 63501
59 Correct 4 ms 376 KB Correct answer: answer = 323501
60 Correct 3 ms 376 KB Correct answer: answer = 752500
61 Correct 3 ms 376 KB Correct answer: answer = 761480
62 Correct 3 ms 376 KB Correct answer: answer = 758932
63 Correct 2 ms 376 KB Correct answer: answer = 1000000
64 Correct 3 ms 376 KB Correct answer: answer = 750500
65 Correct 2 ms 376 KB Correct answer: answer = 1000000
66 Correct 2 ms 376 KB Correct answer: answer = 250000
67 Correct 2 ms 376 KB Correct answer: answer = 250000
68 Correct 2 ms 376 KB Correct answer: answer = 1000000
69 Correct 2 ms 376 KB Correct answer: answer = 994009
70 Correct 2 ms 376 KB Correct answer: answer = 59315
71 Correct 2 ms 376 KB Correct answer: answer = 25454
72 Correct 3 ms 376 KB Correct answer: answer = 1504
73 Correct 2 ms 380 KB Correct answer: answer = 37486
74 Correct 3 ms 376 KB Correct answer: answer = 4284
75 Correct 2 ms 364 KB Correct answer: answer = 158008
76 Correct 15 ms 376 KB Correct answer: answer = 51860
77 Correct 2 ms 376 KB Correct answer: answer = 12985
78 Correct 4 ms 604 KB Correct answer: answer = 997864126212
79 Correct 4 ms 604 KB Correct answer: answer = 998608411647
80 Correct 4 ms 632 KB Correct answer: answer = 995265560477
81 Correct 9 ms 632 KB Correct answer: answer = 10125000
82 Correct 9 ms 732 KB Correct answer: answer = 2291668
83 Correct 6 ms 504 KB Correct answer: answer = 42388
84 Correct 5 ms 504 KB Correct answer: answer = 10318
85 Correct 6 ms 632 KB Correct answer: answer = 3416
86 Correct 11 ms 632 KB Correct answer: answer = 331708193881
87 Correct 11 ms 636 KB Correct answer: answer = 2861193756
88 Correct 11 ms 760 KB Correct answer: answer = 114646930
89 Correct 9 ms 760 KB Correct answer: answer = 9280921
90 Correct 11 ms 692 KB Correct answer: answer = 999984053400
91 Correct 11 ms 604 KB Correct answer: answer = 750935949134
92 Correct 3 ms 504 KB Correct answer: answer = 1000000000000
93 Correct 4 ms 632 KB Correct answer: answer = 998762383161
94 Correct 11 ms 632 KB Correct answer: answer = 23017412908
95 Correct 4 ms 632 KB Correct answer: answer = 728143410622
96 Correct 3 ms 504 KB Correct answer: answer = 2
97 Correct 9 ms 760 KB Correct answer: answer = 1824916
98 Correct 9 ms 632 KB Correct answer: answer = 10680029
99 Correct 9 ms 760 KB Correct answer: answer = 18351700
100 Correct 9 ms 632 KB Correct answer: answer = 16040026
101 Correct 4 ms 504 KB Correct answer: answer = 253968628325
102 Correct 6 ms 504 KB Correct answer: answer = 10267
103 Correct 9 ms 760 KB Correct answer: answer = 2582408
104 Correct 4 ms 632 KB Correct answer: answer = 78024964781
105 Correct 4 ms 604 KB Correct answer: answer = 9866346457
106 Correct 4 ms 632 KB Correct answer: answer = 3327720949
107 Correct 4 ms 632 KB Correct answer: answer = 86064128360
108 Correct 5 ms 632 KB Correct answer: answer = 12698259150
109 Correct 8 ms 632 KB Correct answer: answer = 1185259288
110 Correct 23 ms 3312 KB Correct answer: answer = 999889968863
111 Correct 23 ms 3344 KB Correct answer: answer = 999861384931
112 Correct 23 ms 3312 KB Correct answer: answer = 999811809929
113 Correct 23 ms 3312 KB Correct answer: answer = 999869756441
114 Correct 87 ms 4488 KB Correct answer: answer = 1700000000
115 Correct 90 ms 5588 KB Correct answer: answer = 131666670
116 Correct 29 ms 1880 KB Correct answer: answer = 89478486
117 Correct 31 ms 2004 KB Correct answer: answer = 4971040
118 Correct 29 ms 2012 KB Correct answer: answer = 2711494
119 Correct 89 ms 5712 KB Correct answer: answer = 25252530
120 Correct 84 ms 5808 KB Correct answer: answer = 62500000
121 Correct 108 ms 4460 KB Correct answer: answer = 333175097780
122 Correct 109 ms 4460 KB Correct answer: answer = 33121180179
123 Correct 109 ms 4460 KB Correct answer: answer = 9802314015
124 Correct 89 ms 5704 KB Correct answer: answer = 32567551
125 Correct 89 ms 5840 KB Correct answer: answer = 997525000000
126 Correct 105 ms 4588 KB Correct answer: answer = 752723538884
127 Correct 16 ms 3312 KB Correct answer: answer = 1000000000000
128 Correct 22 ms 3312 KB Correct answer: answer = 999978000121
129 Correct 23 ms 3312 KB Correct answer: answer = 745986144735
130 Correct 13 ms 2928 KB Correct answer: answer = 2
131 Correct 90 ms 5564 KB Correct answer: answer = 277966670
132 Correct 88 ms 4460 KB Correct answer: answer = 2500900082
133 Correct 32 ms 3312 KB Correct answer: answer = 301248349636
134 Correct 54 ms 2412 KB Correct answer: answer = 14118891
135 Correct 23 ms 3312 KB Correct answer: answer = 14384977265
136 Correct 24 ms 3312 KB Correct answer: answer = 3681368330
137 Correct 24 ms 3312 KB Correct answer: answer = 2720316816
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Correct answer: answer = 4
2 Correct 2 ms 256 KB Correct answer: answer = 4
3 Correct 2 ms 256 KB Correct answer: answer = 4
4 Correct 2 ms 256 KB Correct answer: answer = 12
5 Correct 2 ms 252 KB Correct answer: answer = 52
6 Correct 2 ms 256 KB Correct answer: answer = 210
7 Correct 2 ms 376 KB Correct answer: answer = 88
8 Correct 2 ms 256 KB Correct answer: answer = 7696
9 Correct 2 ms 256 KB Correct answer: answer = 1
10 Correct 11 ms 380 KB Correct answer: answer = 2374
11 Correct 2 ms 380 KB Correct answer: answer = 9502
12 Correct 2 ms 376 KB Correct answer: answer = 49
13 Correct 2 ms 376 KB Correct answer: answer = 151
14 Correct 2 ms 256 KB Correct answer: answer = 7550
15 Correct 2 ms 256 KB Correct answer: answer = 7220
16 Correct 2 ms 380 KB Correct answer: answer = 7550
17 Correct 2 ms 256 KB Correct answer: answer = 10000
18 Correct 2 ms 256 KB Correct answer: answer = 10000
19 Correct 2 ms 376 KB Correct answer: answer = 624
20 Correct 2 ms 256 KB Correct answer: answer = 10000
21 Correct 2 ms 376 KB Correct answer: answer = 1
22 Correct 2 ms 256 KB Correct answer: answer = 4
23 Correct 2 ms 252 KB Correct answer: answer = 1
24 Correct 2 ms 376 KB Correct answer: answer = 5
25 Correct 2 ms 376 KB Correct answer: answer = 41
26 Correct 2 ms 308 KB Correct answer: answer = 71923
27 Correct 3 ms 376 KB Correct answer: answer = 77137
28 Correct 3 ms 376 KB Correct answer: answer = 764
29 Correct 3 ms 376 KB Correct answer: answer = 250000
30 Correct 3 ms 376 KB Correct answer: answer = 500
31 Correct 2 ms 256 KB Correct answer: answer = 32
32 Correct 3 ms 504 KB Correct answer: answer = 130050
33 Correct 3 ms 376 KB Correct answer: answer = 5110
34 Correct 3 ms 376 KB Correct answer: answer = 2626
35 Correct 2 ms 376 KB Correct answer: answer = 796
36 Correct 3 ms 376 KB Correct answer: answer = 7580
37 Correct 3 ms 380 KB Correct answer: answer = 1904
38 Correct 3 ms 380 KB Correct answer: answer = 996004
39 Correct 3 ms 376 KB Correct answer: answer = 38817
40 Correct 3 ms 376 KB Correct answer: answer = 4096
41 Correct 2 ms 376 KB Correct answer: answer = 1
42 Correct 2 ms 376 KB Correct answer: answer = 1
43 Correct 3 ms 376 KB Correct answer: answer = 2040
44 Correct 2 ms 376 KB Correct answer: answer = 2
45 Correct 2 ms 376 KB Correct answer: answer = 4
46 Correct 2 ms 376 KB Correct answer: answer = 9
47 Correct 2 ms 376 KB Correct answer: answer = 9
48 Correct 2 ms 376 KB Correct answer: answer = 21
49 Correct 2 ms 252 KB Correct answer: answer = 71
50 Correct 2 ms 376 KB Correct answer: answer = 77
51 Correct 2 ms 376 KB Correct answer: answer = 400
52 Correct 2 ms 376 KB Correct answer: answer = 996004
53 Correct 4 ms 380 KB Correct answer: answer = 997310
54 Correct 2 ms 376 KB Correct answer: answer = 990781
55 Correct 2 ms 376 KB Correct answer: answer = 996545
56 Correct 3 ms 376 KB Correct answer: answer = 484
57 Correct 2 ms 376 KB Correct answer: answer = 484
58 Correct 3 ms 376 KB Correct answer: answer = 63501
59 Correct 4 ms 376 KB Correct answer: answer = 323501
60 Correct 3 ms 376 KB Correct answer: answer = 752500
61 Correct 3 ms 376 KB Correct answer: answer = 761480
62 Correct 3 ms 376 KB Correct answer: answer = 758932
63 Correct 2 ms 376 KB Correct answer: answer = 1000000
64 Correct 3 ms 376 KB Correct answer: answer = 750500
65 Correct 2 ms 376 KB Correct answer: answer = 1000000
66 Correct 2 ms 376 KB Correct answer: answer = 250000
67 Correct 2 ms 376 KB Correct answer: answer = 250000
68 Correct 2 ms 376 KB Correct answer: answer = 1000000
69 Correct 2 ms 376 KB Correct answer: answer = 994009
70 Correct 2 ms 376 KB Correct answer: answer = 59315
71 Correct 2 ms 376 KB Correct answer: answer = 25454
72 Correct 3 ms 376 KB Correct answer: answer = 1504
73 Correct 2 ms 380 KB Correct answer: answer = 37486
74 Correct 3 ms 376 KB Correct answer: answer = 4284
75 Correct 2 ms 364 KB Correct answer: answer = 158008
76 Correct 15 ms 376 KB Correct answer: answer = 51860
77 Correct 2 ms 376 KB Correct answer: answer = 12985
78 Correct 4 ms 604 KB Correct answer: answer = 997864126212
79 Correct 4 ms 604 KB Correct answer: answer = 998608411647
80 Correct 4 ms 632 KB Correct answer: answer = 995265560477
81 Correct 9 ms 632 KB Correct answer: answer = 10125000
82 Correct 9 ms 732 KB Correct answer: answer = 2291668
83 Correct 6 ms 504 KB Correct answer: answer = 42388
84 Correct 5 ms 504 KB Correct answer: answer = 10318
85 Correct 6 ms 632 KB Correct answer: answer = 3416
86 Correct 11 ms 632 KB Correct answer: answer = 331708193881
87 Correct 11 ms 636 KB Correct answer: answer = 2861193756
88 Correct 11 ms 760 KB Correct answer: answer = 114646930
89 Correct 9 ms 760 KB Correct answer: answer = 9280921
90 Correct 11 ms 692 KB Correct answer: answer = 999984053400
91 Correct 11 ms 604 KB Correct answer: answer = 750935949134
92 Correct 3 ms 504 KB Correct answer: answer = 1000000000000
93 Correct 4 ms 632 KB Correct answer: answer = 998762383161
94 Correct 11 ms 632 KB Correct answer: answer = 23017412908
95 Correct 4 ms 632 KB Correct answer: answer = 728143410622
96 Correct 3 ms 504 KB Correct answer: answer = 2
97 Correct 9 ms 760 KB Correct answer: answer = 1824916
98 Correct 9 ms 632 KB Correct answer: answer = 10680029
99 Correct 9 ms 760 KB Correct answer: answer = 18351700
100 Correct 9 ms 632 KB Correct answer: answer = 16040026
101 Correct 4 ms 504 KB Correct answer: answer = 253968628325
102 Correct 6 ms 504 KB Correct answer: answer = 10267
103 Correct 9 ms 760 KB Correct answer: answer = 2582408
104 Correct 4 ms 632 KB Correct answer: answer = 78024964781
105 Correct 4 ms 604 KB Correct answer: answer = 9866346457
106 Correct 4 ms 632 KB Correct answer: answer = 3327720949
107 Correct 4 ms 632 KB Correct answer: answer = 86064128360
108 Correct 5 ms 632 KB Correct answer: answer = 12698259150
109 Correct 8 ms 632 KB Correct answer: answer = 1185259288
110 Correct 23 ms 3312 KB Correct answer: answer = 999889968863
111 Correct 23 ms 3344 KB Correct answer: answer = 999861384931
112 Correct 23 ms 3312 KB Correct answer: answer = 999811809929
113 Correct 23 ms 3312 KB Correct answer: answer = 999869756441
114 Correct 87 ms 4488 KB Correct answer: answer = 1700000000
115 Correct 90 ms 5588 KB Correct answer: answer = 131666670
116 Correct 29 ms 1880 KB Correct answer: answer = 89478486
117 Correct 31 ms 2004 KB Correct answer: answer = 4971040
118 Correct 29 ms 2012 KB Correct answer: answer = 2711494
119 Correct 89 ms 5712 KB Correct answer: answer = 25252530
120 Correct 84 ms 5808 KB Correct answer: answer = 62500000
121 Correct 108 ms 4460 KB Correct answer: answer = 333175097780
122 Correct 109 ms 4460 KB Correct answer: answer = 33121180179
123 Correct 109 ms 4460 KB Correct answer: answer = 9802314015
124 Correct 89 ms 5704 KB Correct answer: answer = 32567551
125 Correct 89 ms 5840 KB Correct answer: answer = 997525000000
126 Correct 105 ms 4588 KB Correct answer: answer = 752723538884
127 Correct 16 ms 3312 KB Correct answer: answer = 1000000000000
128 Correct 22 ms 3312 KB Correct answer: answer = 999978000121
129 Correct 23 ms 3312 KB Correct answer: answer = 745986144735
130 Correct 13 ms 2928 KB Correct answer: answer = 2
131 Correct 90 ms 5564 KB Correct answer: answer = 277966670
132 Correct 88 ms 4460 KB Correct answer: answer = 2500900082
133 Correct 32 ms 3312 KB Correct answer: answer = 301248349636
134 Correct 54 ms 2412 KB Correct answer: answer = 14118891
135 Correct 23 ms 3312 KB Correct answer: answer = 14384977265
136 Correct 24 ms 3312 KB Correct answer: answer = 3681368330
137 Correct 24 ms 3312 KB Correct answer: answer = 2720316816
138 Correct 44 ms 6152 KB Correct answer: answer = 999976000144
139 Correct 45 ms 6252 KB Correct answer: answer = 999856102410
140 Correct 44 ms 6252 KB Correct answer: answer = 999958401531
141 Correct 44 ms 6252 KB Correct answer: answer = 999769649944
142 Correct 45 ms 6252 KB Correct answer: answer = 999874525918
143 Correct 180 ms 8552 KB Correct answer: answer = 6050000000
144 Correct 180 ms 10648 KB Correct answer: answer = 1112500000
145 Correct 106 ms 6292 KB Correct answer: answer = 4294967296
146 Correct 135 ms 6864 KB Correct answer: answer = 87652406
147 Correct 122 ms 6216 KB Correct answer: answer = 6297664
148 Correct 113 ms 7120 KB Correct answer: answer = 196612
149 Correct 192 ms 11228 KB Correct answer: answer = 15015100
150 Correct 167 ms 11244 KB Correct answer: answer = 25000000
151 Correct 212 ms 8740 KB Correct answer: answer = 333230209550
152 Correct 223 ms 8680 KB Correct answer: answer = 917123769
153 Correct 212 ms 11324 KB Correct answer: answer = 95162
154 Correct 182 ms 11196 KB Correct answer: answer = 382616191
155 Correct 181 ms 11416 KB Correct answer: answer = 990033333400
156 Correct 178 ms 11444 KB Correct answer: answer = 990000100000
157 Correct 202 ms 8892 KB Correct answer: answer = 749998188180
158 Correct 32 ms 6124 KB Correct answer: answer = 1000000000000
159 Correct 44 ms 6252 KB Correct answer: answer = 999988000036
160 Correct 44 ms 6260 KB Correct answer: answer = 744929274393
161 Correct 25 ms 5356 KB Correct answer: answer = 2
162 Correct 176 ms 11244 KB Correct answer: answer = 1300024
163 Correct 186 ms 8712 KB Correct answer: answer = 5000700010
164 Correct 64 ms 6124 KB Correct answer: answer = 354997100800
165 Correct 108 ms 5424 KB Correct answer: answer = 257000
166 Correct 110 ms 5968 KB Correct answer: answer = 3765323
167 Correct 101 ms 5920 KB Correct answer: answer = 1525903
168 Correct 46 ms 6252 KB Correct answer: answer = 67618137730
169 Correct 45 ms 6300 KB Correct answer: answer = 12656680171
170 Correct 50 ms 6380 KB Correct answer: answer = 579831736
171 Correct 107 ms 6504 KB Correct answer: answer = 23605611
172 Correct 50 ms 6252 KB Correct answer: answer = 7052481200
173 Correct 59 ms 6252 KB Correct answer: answer = 1314039500
174 Correct 70 ms 6504 KB Correct answer: answer = 302484000
175 Correct 129 ms 7656 KB Correct answer: answer = 52348480