답안 #160170

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
160170 2019-10-26T08:43:45 Z BlueDiamond Bali Sculptures (APIO15_sculpture) C++14
71 / 100
9 ms 888 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const int N = 2000 + 7;
int n, mn, mx;
ll a[N];
bool good[N][N], ok[N][N];

bool okapi(ll x, ll cur, int bit) {
        x -= x & cur;
        return (x < (1LL << bit));
}

bool valid(ll cur, int bit) {
        ll val = (1LL << bit);

        for (int i = 1; i <= n; i++) {
                ll sum = 0;
                for (int j = i; j <= n; j++) {
                        sum += a[j];
                        good[i][j] = okapi(sum, cur, bit);
                }
        }

        for (int i = 0; i <= n; i++)
                for (int j = 0; j <= mx; j++)
                        ok[i][j] = 0;

        ok[0][0] = 1;
        for (int i = 0; i < n; i++)
                for (int c = 0; c < mx; c++)
                        if (ok[i][c])
                                for (int j = i + 1; j <= n; j++)
                                        if (good[i + 1][j])
                                                ok[j][c + 1] = 1;

        for (int c = mn; c <= mx; c++)
                if (ok[n][c])
                        return 1;
        return 0;
}

int main() {
        ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

   ///     freopen ("input", "r", stdin);

        cin >> n >> mn >> mx;
        for (int i = 1; i <= n; i++)
                cin >> a[i];

        if (n <= 100) {
                ll sum = 0;
                for (int i = 1; i <= n; i++)
                        sum += a[i];

                ll mask = 0;
                for (int k = log2(sum); k >= 0; k--)
                        if (valid(mask, k) == 0)
                                mask += (1LL << k);

                cout << mask << "\n";
                return 0;
        }

        return 0;
}

Compilation message

sculpture.cpp: In function 'bool valid(ll, int)':
sculpture.cpp:17:12: warning: unused variable 'val' [-Wunused-variable]
         ll val = (1LL << bit);
            ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 424 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 504 KB Output is correct
10 Correct 2 ms 504 KB Output is correct
11 Correct 2 ms 504 KB Output is correct
12 Correct 2 ms 504 KB Output is correct
13 Correct 2 ms 504 KB Output is correct
14 Correct 2 ms 380 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 376 KB Output is correct
20 Correct 2 ms 376 KB Output is correct
21 Correct 2 ms 504 KB Output is correct
22 Correct 2 ms 380 KB Output is correct
23 Correct 2 ms 376 KB Output is correct
24 Correct 2 ms 508 KB Output is correct
25 Correct 2 ms 504 KB Output is correct
26 Correct 2 ms 388 KB Output is correct
27 Correct 2 ms 376 KB Output is correct
28 Correct 2 ms 376 KB Output is correct
29 Correct 2 ms 376 KB Output is correct
30 Correct 2 ms 504 KB Output is correct
31 Correct 2 ms 504 KB Output is correct
32 Correct 2 ms 376 KB Output is correct
33 Correct 2 ms 384 KB Output is correct
34 Correct 2 ms 376 KB Output is correct
35 Correct 2 ms 376 KB Output is correct
36 Correct 2 ms 504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 352 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 380 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 504 KB Output is correct
11 Correct 2 ms 504 KB Output is correct
12 Correct 2 ms 504 KB Output is correct
13 Correct 2 ms 504 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 376 KB Output is correct
20 Correct 2 ms 376 KB Output is correct
21 Correct 2 ms 504 KB Output is correct
22 Correct 2 ms 376 KB Output is correct
23 Correct 2 ms 508 KB Output is correct
24 Correct 2 ms 504 KB Output is correct
25 Correct 2 ms 504 KB Output is correct
26 Correct 2 ms 504 KB Output is correct
27 Correct 2 ms 504 KB Output is correct
28 Correct 2 ms 508 KB Output is correct
29 Correct 2 ms 504 KB Output is correct
30 Correct 2 ms 632 KB Output is correct
31 Correct 2 ms 504 KB Output is correct
32 Correct 2 ms 504 KB Output is correct
33 Correct 2 ms 504 KB Output is correct
34 Correct 2 ms 504 KB Output is correct
35 Correct 2 ms 504 KB Output is correct
36 Correct 2 ms 504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 380 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 380 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 504 KB Output is correct
11 Correct 2 ms 504 KB Output is correct
12 Correct 2 ms 504 KB Output is correct
13 Correct 2 ms 504 KB Output is correct
14 Correct 2 ms 504 KB Output is correct
15 Correct 2 ms 504 KB Output is correct
16 Correct 2 ms 504 KB Output is correct
17 Correct 6 ms 504 KB Output is correct
18 Correct 2 ms 504 KB Output is correct
19 Correct 7 ms 504 KB Output is correct
20 Correct 2 ms 504 KB Output is correct
21 Correct 2 ms 504 KB Output is correct
22 Correct 2 ms 504 KB Output is correct
23 Correct 2 ms 504 KB Output is correct
24 Correct 2 ms 504 KB Output is correct
25 Correct 2 ms 632 KB Output is correct
26 Correct 3 ms 636 KB Output is correct
27 Correct 3 ms 632 KB Output is correct
28 Correct 3 ms 760 KB Output is correct
29 Correct 4 ms 760 KB Output is correct
30 Correct 2 ms 760 KB Output is correct
31 Correct 3 ms 760 KB Output is correct
32 Correct 3 ms 760 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 380 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 3 ms 380 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 2 ms 504 KB Output is correct
10 Correct 2 ms 504 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 376 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 348 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 376 KB Output is correct
20 Correct 2 ms 380 KB Output is correct
21 Correct 2 ms 376 KB Output is correct
22 Correct 2 ms 376 KB Output is correct
23 Correct 2 ms 380 KB Output is correct
24 Correct 2 ms 376 KB Output is correct
25 Correct 2 ms 376 KB Output is correct
26 Correct 2 ms 376 KB Output is correct
27 Correct 2 ms 376 KB Output is correct
28 Correct 2 ms 376 KB Output is correct
29 Correct 2 ms 376 KB Output is correct
30 Correct 4 ms 376 KB Output is correct
31 Correct 2 ms 504 KB Output is correct
32 Correct 2 ms 376 KB Output is correct
33 Correct 2 ms 504 KB Output is correct
34 Correct 2 ms 380 KB Output is correct
35 Correct 2 ms 504 KB Output is correct
36 Correct 2 ms 504 KB Output is correct
37 Correct 3 ms 504 KB Output is correct
38 Correct 2 ms 504 KB Output is correct
39 Correct 2 ms 504 KB Output is correct
40 Correct 6 ms 504 KB Output is correct
41 Correct 2 ms 504 KB Output is correct
42 Correct 2 ms 504 KB Output is correct
43 Correct 2 ms 508 KB Output is correct
44 Correct 2 ms 504 KB Output is correct
45 Correct 2 ms 504 KB Output is correct
46 Correct 2 ms 504 KB Output is correct
47 Correct 2 ms 504 KB Output is correct
48 Correct 2 ms 632 KB Output is correct
49 Correct 3 ms 632 KB Output is correct
50 Correct 3 ms 760 KB Output is correct
51 Correct 3 ms 760 KB Output is correct
52 Correct 3 ms 760 KB Output is correct
53 Correct 2 ms 760 KB Output is correct
54 Correct 3 ms 760 KB Output is correct
55 Correct 4 ms 764 KB Output is correct
56 Correct 3 ms 504 KB Output is correct
57 Correct 3 ms 760 KB Output is correct
58 Correct 4 ms 760 KB Output is correct
59 Correct 4 ms 760 KB Output is correct
60 Correct 4 ms 760 KB Output is correct
61 Correct 3 ms 760 KB Output is correct
62 Correct 4 ms 760 KB Output is correct
63 Correct 5 ms 760 KB Output is correct
64 Correct 7 ms 632 KB Output is correct
65 Correct 3 ms 504 KB Output is correct
66 Correct 3 ms 632 KB Output is correct
67 Correct 3 ms 640 KB Output is correct
68 Correct 4 ms 632 KB Output is correct
69 Correct 4 ms 760 KB Output is correct
70 Correct 5 ms 760 KB Output is correct
71 Correct 3 ms 888 KB Output is correct
72 Correct 4 ms 760 KB Output is correct
73 Correct 5 ms 760 KB Output is correct
74 Correct 5 ms 760 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 424 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 504 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 2 ms 504 KB Output is correct
10 Correct 2 ms 504 KB Output is correct
11 Correct 2 ms 508 KB Output is correct
12 Correct 2 ms 508 KB Output is correct
13 Correct 9 ms 504 KB Output is correct
14 Correct 2 ms 380 KB Output is correct
15 Correct 2 ms 504 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Correct 2 ms 380 KB Output is correct
18 Correct 2 ms 504 KB Output is correct
19 Correct 2 ms 376 KB Output is correct
20 Correct 2 ms 508 KB Output is correct
21 Correct 2 ms 376 KB Output is correct
22 Correct 2 ms 376 KB Output is correct
23 Correct 2 ms 380 KB Output is correct
24 Correct 2 ms 376 KB Output is correct
25 Correct 2 ms 504 KB Output is correct
26 Correct 2 ms 504 KB Output is correct
27 Correct 2 ms 504 KB Output is correct
28 Correct 2 ms 504 KB Output is correct
29 Correct 2 ms 504 KB Output is correct
30 Correct 2 ms 504 KB Output is correct
31 Correct 2 ms 504 KB Output is correct
32 Correct 2 ms 504 KB Output is correct
33 Correct 2 ms 504 KB Output is correct
34 Correct 2 ms 504 KB Output is correct
35 Correct 2 ms 632 KB Output is correct
36 Correct 2 ms 632 KB Output is correct
37 Correct 3 ms 760 KB Output is correct
38 Correct 3 ms 760 KB Output is correct
39 Correct 3 ms 760 KB Output is correct
40 Correct 2 ms 760 KB Output is correct
41 Correct 3 ms 760 KB Output is correct
42 Correct 3 ms 760 KB Output is correct
43 Correct 2 ms 504 KB Output is correct
44 Correct 3 ms 636 KB Output is correct
45 Correct 4 ms 632 KB Output is correct
46 Correct 4 ms 760 KB Output is correct
47 Correct 4 ms 760 KB Output is correct
48 Correct 3 ms 760 KB Output is correct
49 Correct 4 ms 760 KB Output is correct
50 Correct 5 ms 760 KB Output is correct
51 Incorrect 2 ms 376 KB Output isn't correct
52 Halted 0 ms 0 KB -