Submission #846405

# Submission time Handle Problem Language Result Execution time Memory
846405 2023-09-07T14:25:17 Z vjudge1 Bali Sculptures (APIO15_sculpture) C++17
71 / 100
10 ms 608 KB
#include <bits/stdc++.h>
#define task ""
#define fi first
#define se second
#define pii pair<int, int>

using namespace std;
using ll = long long;

const ll mod = 998244353;
const int inf = 1e9 + 1;
const int arr = 100001;

int n, p, q, a[2001], dp[101][101], dp2[2001];
ll ps[2001];
void sub1(){
    ll finmask = 0;
    for(int x = 40; x >= 0; x--){
        memset(dp, 0, sizeof dp);
        dp[0][0] = 1;
        ll tmp = finmask | (1LL << x);
        for(int k = 1; k <= q; k++){
            for(int i = k; i <= n; i++){
                for(int j = k; j <= i; j++){
                    ll sum = ps[i] - ps[j - 1];
                    if(dp[j - 1][k - 1] && ((sum & tmp) == 0))dp[i][k] = 1;
                }
            }
        }
        for(int k = p; k <= q; k++){
            if(dp[n][k]){
                finmask |= (1LL << x);
                break;
            }
        }
    }
    ll res = 0;
    for(int i = 0; i <= 40; i++){
        if(!(finmask >> i & 1))res += (1LL << i);
    }
    cout << res << '\n'; 
}
void sub2(){
    ll finmask = 0;
    for(int x = 40; x >= 0; x--){
        memset(dp2, 0x3f, sizeof dp2);
        dp2[0] = 1;
        ll tmp = finmask | (1LL << x);
        for(int i = 1; i <= n; i++){
            for(int j = i; j > 0; j--){
                ll sum = ps[i] - ps[j - 1];
                if(((sum & tmp) == 0))dp2[i] = min(dp2[i], dp2[j - 1] + 1);
            }
        }
        if(dp2[n] <= q)finmask |= (1LL << x);
    }
    ll res = 0;
    for(int i = 0; i <= 40; i++){
        if(!(finmask >> i & 1))res |= (1LL << i);
    }
    cout << res << '\n'; 
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    // freopen(task".inp" , "r" , stdin);  
    // freopen(task".out" , "w" , stdout);
    cin >> n >> p >> q;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        ps[i] = ps[i - 1] + a[i];
    }
    if(n <= 100)sub1();
    else sub2();
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 1 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 1 ms 348 KB Output is correct
23 Correct 1 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 0 ms 348 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 1 ms 348 KB Output is correct
29 Correct 1 ms 348 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 0 ms 348 KB Output is correct
32 Correct 1 ms 348 KB Output is correct
33 Correct 1 ms 348 KB Output is correct
34 Correct 1 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 512 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 1 ms 344 KB Output is correct
26 Correct 1 ms 348 KB Output is correct
27 Correct 1 ms 348 KB Output is correct
28 Correct 1 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 1 ms 348 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 1 ms 348 KB Output is correct
33 Correct 0 ms 348 KB Output is correct
34 Correct 1 ms 348 KB Output is correct
35 Correct 1 ms 348 KB Output is correct
36 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 1 ms 348 KB Output is correct
23 Correct 1 ms 348 KB Output is correct
24 Correct 1 ms 348 KB Output is correct
25 Correct 1 ms 348 KB Output is correct
26 Correct 2 ms 348 KB Output is correct
27 Correct 4 ms 348 KB Output is correct
28 Correct 7 ms 344 KB Output is correct
29 Correct 6 ms 600 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 5 ms 500 KB Output is correct
32 Correct 6 ms 496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 344 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 500 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 0 ms 348 KB Output is correct
26 Correct 0 ms 600 KB Output is correct
27 Correct 0 ms 348 KB Output is correct
28 Correct 0 ms 348 KB Output is correct
29 Correct 0 ms 348 KB Output is correct
30 Correct 1 ms 348 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 0 ms 348 KB Output is correct
33 Correct 0 ms 348 KB Output is correct
34 Correct 1 ms 348 KB Output is correct
35 Correct 0 ms 348 KB Output is correct
36 Correct 0 ms 348 KB Output is correct
37 Correct 0 ms 348 KB Output is correct
38 Correct 0 ms 348 KB Output is correct
39 Correct 0 ms 348 KB Output is correct
40 Correct 1 ms 348 KB Output is correct
41 Correct 1 ms 348 KB Output is correct
42 Correct 1 ms 504 KB Output is correct
43 Correct 1 ms 348 KB Output is correct
44 Correct 1 ms 348 KB Output is correct
45 Correct 1 ms 348 KB Output is correct
46 Correct 1 ms 348 KB Output is correct
47 Correct 1 ms 496 KB Output is correct
48 Correct 1 ms 348 KB Output is correct
49 Correct 2 ms 348 KB Output is correct
50 Correct 5 ms 344 KB Output is correct
51 Correct 6 ms 348 KB Output is correct
52 Correct 6 ms 348 KB Output is correct
53 Correct 0 ms 348 KB Output is correct
54 Correct 6 ms 348 KB Output is correct
55 Correct 7 ms 500 KB Output is correct
56 Correct 1 ms 348 KB Output is correct
57 Correct 3 ms 348 KB Output is correct
58 Correct 7 ms 344 KB Output is correct
59 Correct 7 ms 348 KB Output is correct
60 Correct 7 ms 348 KB Output is correct
61 Correct 1 ms 348 KB Output is correct
62 Correct 7 ms 348 KB Output is correct
63 Correct 7 ms 348 KB Output is correct
64 Correct 5 ms 344 KB Output is correct
65 Correct 1 ms 348 KB Output is correct
66 Correct 1 ms 348 KB Output is correct
67 Correct 3 ms 348 KB Output is correct
68 Correct 5 ms 348 KB Output is correct
69 Correct 9 ms 348 KB Output is correct
70 Correct 7 ms 348 KB Output is correct
71 Correct 1 ms 348 KB Output is correct
72 Correct 8 ms 348 KB Output is correct
73 Correct 7 ms 348 KB Output is correct
74 Correct 7 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 356 KB Output is correct
8 Correct 0 ms 608 KB Output is correct
9 Correct 0 ms 356 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 1 ms 348 KB Output is correct
19 Correct 0 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 0 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 0 ms 344 KB Output is correct
26 Correct 0 ms 348 KB Output is correct
27 Correct 1 ms 348 KB Output is correct
28 Correct 1 ms 348 KB Output is correct
29 Correct 1 ms 348 KB Output is correct
30 Correct 0 ms 348 KB Output is correct
31 Correct 1 ms 348 KB Output is correct
32 Correct 1 ms 348 KB Output is correct
33 Correct 1 ms 600 KB Output is correct
34 Correct 1 ms 348 KB Output is correct
35 Correct 1 ms 348 KB Output is correct
36 Correct 2 ms 348 KB Output is correct
37 Correct 8 ms 348 KB Output is correct
38 Correct 8 ms 348 KB Output is correct
39 Correct 7 ms 348 KB Output is correct
40 Correct 1 ms 344 KB Output is correct
41 Correct 6 ms 348 KB Output is correct
42 Correct 10 ms 496 KB Output is correct
43 Correct 5 ms 344 KB Output is correct
44 Correct 3 ms 348 KB Output is correct
45 Correct 6 ms 348 KB Output is correct
46 Correct 9 ms 348 KB Output is correct
47 Correct 7 ms 500 KB Output is correct
48 Correct 1 ms 348 KB Output is correct
49 Correct 9 ms 504 KB Output is correct
50 Correct 7 ms 348 KB Output is correct
51 Incorrect 0 ms 348 KB Output isn't correct
52 Halted 0 ms 0 KB -