Submission #33728

# Submission time Handle Problem Language Result Execution time Memory
33728 2017-11-01T08:06:31 Z sinhriv Bali Sculptures (APIO15_sculpture) C++14
46 / 100
46 ms 2016 KB
#include <bits/stdc++.h>

using namespace std;

const int N = 130;

int n, a, b;

int f[N];
int arr[N];
long long sum[N];

void small(){
	long long ans = sum[n];

	for(int mask = 0; mask < (1 << (n - 1)); ++mask){
		int cnt = __builtin_popcount(mask) + 1;
		if(cnt < a || cnt > b) continue;

		long long curr = 0, now = 0;

		for(int i = 1; i <= n; ++i){
			curr += arr[i];
			if(mask & (1 << (i - 1))){
				now |= curr;
				curr = 0;
			}
		}
		now |= curr;
		ans = min(ans, now);
	}
	cout << ans;
}

void Medium(){
	for(int value = 0; value < (1 << 11); ++value){
		memset(f, 60, sizeof f);
		f[0] = 0;

		for(int i = 1; i <= n; ++i){
			for(int j = i - 1; j >= 0; --j){
				if((value | (sum[i] - sum[j])) == value){
					f[i] = min(f[i], f[j] + 1);
				}
			}
		}
		if(f[n] <= b){
			cout << value;
			return;
		}
	}
}

int main(){
	if(fopen("1.inp", "r")){
		freopen("1.inp", "r", stdin);
	}

	cin >> n >> a >> b;

	for(int i = 1; i <= n; ++i){
		cin >> arr[i];
		sum[i] = arr[i] + sum[i - 1];
	}

	if(n <= 20) small();
	else{
		Medium();
	}	

	return 0;
}

Compilation message

sculpture.cpp: In function 'int main()':
sculpture.cpp:56:31: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   freopen("1.inp", "r", stdin);
                               ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2016 KB Output is correct
2 Correct 0 ms 2016 KB Output is correct
3 Correct 0 ms 2016 KB Output is correct
4 Correct 0 ms 2016 KB Output is correct
5 Correct 0 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 0 ms 2016 KB Output is correct
8 Correct 3 ms 2016 KB Output is correct
9 Correct 0 ms 2016 KB Output is correct
10 Correct 3 ms 2016 KB Output is correct
11 Correct 3 ms 2016 KB Output is correct
12 Correct 0 ms 2016 KB Output is correct
13 Correct 39 ms 2016 KB Output is correct
14 Correct 0 ms 2016 KB Output is correct
15 Correct 0 ms 2016 KB Output is correct
16 Correct 0 ms 2016 KB Output is correct
17 Correct 0 ms 2016 KB Output is correct
18 Correct 0 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 0 ms 2016 KB Output is correct
21 Correct 3 ms 2016 KB Output is correct
22 Correct 3 ms 2016 KB Output is correct
23 Correct 3 ms 2016 KB Output is correct
24 Correct 0 ms 2016 KB Output is correct
25 Correct 3 ms 2016 KB Output is correct
26 Correct 36 ms 2016 KB Output is correct
27 Correct 0 ms 2016 KB Output is correct
28 Correct 0 ms 2016 KB Output is correct
29 Correct 0 ms 2016 KB Output is correct
30 Correct 0 ms 2016 KB Output is correct
31 Correct 6 ms 2016 KB Output is correct
32 Correct 0 ms 2016 KB Output is correct
33 Correct 39 ms 2016 KB Output is correct
34 Correct 39 ms 2016 KB Output is correct
35 Correct 3 ms 2016 KB Output is correct
36 Correct 39 ms 2016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2016 KB Output is correct
2 Correct 0 ms 2016 KB Output is correct
3 Correct 0 ms 2016 KB Output is correct
4 Correct 0 ms 2016 KB Output is correct
5 Correct 0 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 0 ms 2016 KB Output is correct
8 Correct 3 ms 2016 KB Output is correct
9 Correct 3 ms 2016 KB Output is correct
10 Correct 0 ms 2016 KB Output is correct
11 Correct 0 ms 2016 KB Output is correct
12 Correct 0 ms 2016 KB Output is correct
13 Correct 39 ms 2016 KB Output is correct
14 Correct 0 ms 2016 KB Output is correct
15 Correct 0 ms 2016 KB Output is correct
16 Correct 0 ms 2016 KB Output is correct
17 Correct 0 ms 2016 KB Output is correct
18 Correct 0 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 0 ms 2016 KB Output is correct
21 Correct 3 ms 2016 KB Output is correct
22 Correct 3 ms 2016 KB Output is correct
23 Correct 6 ms 2016 KB Output is correct
24 Correct 0 ms 2016 KB Output is correct
25 Correct 3 ms 2016 KB Output is correct
26 Correct 36 ms 2016 KB Output is correct
27 Correct 0 ms 2016 KB Output is correct
28 Correct 0 ms 2016 KB Output is correct
29 Correct 0 ms 2016 KB Output is correct
30 Correct 0 ms 2016 KB Output is correct
31 Correct 0 ms 2016 KB Output is correct
32 Correct 0 ms 2016 KB Output is correct
33 Correct 0 ms 2016 KB Output is correct
34 Correct 0 ms 2016 KB Output is correct
35 Correct 0 ms 2016 KB Output is correct
36 Correct 0 ms 2016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2016 KB Output is correct
2 Correct 0 ms 2016 KB Output is correct
3 Correct 0 ms 2016 KB Output is correct
4 Correct 0 ms 2016 KB Output is correct
5 Correct 0 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 0 ms 2016 KB Output is correct
8 Correct 3 ms 2016 KB Output is correct
9 Correct 3 ms 2016 KB Output is correct
10 Correct 0 ms 2016 KB Output is correct
11 Correct 0 ms 2016 KB Output is correct
12 Correct 3 ms 2016 KB Output is correct
13 Correct 39 ms 2016 KB Output is correct
14 Correct 0 ms 2016 KB Output is correct
15 Correct 0 ms 2016 KB Output is correct
16 Correct 0 ms 2016 KB Output is correct
17 Correct 0 ms 2016 KB Output is correct
18 Correct 0 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 0 ms 2016 KB Output is correct
21 Correct 0 ms 2016 KB Output is correct
22 Correct 0 ms 2016 KB Output is correct
23 Correct 0 ms 2016 KB Output is correct
24 Correct 0 ms 2016 KB Output is correct
25 Correct 0 ms 2016 KB Output is correct
26 Correct 0 ms 2016 KB Output is correct
27 Correct 0 ms 2016 KB Output is correct
28 Correct 0 ms 2016 KB Output is correct
29 Correct 0 ms 2016 KB Output is correct
30 Correct 13 ms 2016 KB Output is correct
31 Correct 0 ms 2016 KB Output is correct
32 Correct 0 ms 2016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2016 KB Output is correct
2 Correct 0 ms 2016 KB Output is correct
3 Correct 0 ms 2016 KB Output is correct
4 Correct 0 ms 2016 KB Output is correct
5 Correct 0 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 0 ms 2016 KB Output is correct
8 Correct 0 ms 2016 KB Output is correct
9 Correct 0 ms 2016 KB Output is correct
10 Correct 0 ms 2016 KB Output is correct
11 Correct 0 ms 2016 KB Output is correct
12 Correct 0 ms 2016 KB Output is correct
13 Correct 39 ms 2016 KB Output is correct
14 Correct 0 ms 2016 KB Output is correct
15 Correct 0 ms 2016 KB Output is correct
16 Correct 0 ms 2016 KB Output is correct
17 Correct 0 ms 2016 KB Output is correct
18 Correct 0 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 0 ms 2016 KB Output is correct
21 Correct 6 ms 2016 KB Output is correct
22 Correct 6 ms 2016 KB Output is correct
23 Correct 3 ms 2016 KB Output is correct
24 Correct 0 ms 2016 KB Output is correct
25 Correct 3 ms 2016 KB Output is correct
26 Correct 36 ms 2016 KB Output is correct
27 Correct 0 ms 2016 KB Output is correct
28 Correct 0 ms 2016 KB Output is correct
29 Correct 0 ms 2016 KB Output is correct
30 Correct 0 ms 2016 KB Output is correct
31 Correct 3 ms 2016 KB Output is correct
32 Correct 0 ms 2016 KB Output is correct
33 Correct 39 ms 2016 KB Output is correct
34 Correct 39 ms 2016 KB Output is correct
35 Correct 3 ms 2016 KB Output is correct
36 Correct 46 ms 2016 KB Output is correct
37 Correct 0 ms 2016 KB Output is correct
38 Correct 0 ms 2016 KB Output is correct
39 Correct 0 ms 2016 KB Output is correct
40 Correct 0 ms 2016 KB Output is correct
41 Correct 0 ms 2016 KB Output is correct
42 Correct 0 ms 2016 KB Output is correct
43 Correct 0 ms 2016 KB Output is correct
44 Correct 0 ms 2016 KB Output is correct
45 Correct 0 ms 2016 KB Output is correct
46 Correct 0 ms 2016 KB Output is correct
47 Correct 0 ms 2016 KB Output is correct
48 Correct 0 ms 2016 KB Output is correct
49 Correct 0 ms 2016 KB Output is correct
50 Correct 0 ms 2016 KB Output is correct
51 Correct 0 ms 2016 KB Output is correct
52 Correct 0 ms 2016 KB Output is correct
53 Correct 13 ms 2016 KB Output is correct
54 Correct 0 ms 2016 KB Output is correct
55 Correct 0 ms 2016 KB Output is correct
56 Incorrect 3 ms 2016 KB Output isn't correct
57 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 2016 KB Output is correct
2 Correct 0 ms 2016 KB Output is correct
3 Correct 0 ms 2016 KB Output is correct
4 Correct 0 ms 2016 KB Output is correct
5 Correct 0 ms 2016 KB Output is correct
6 Correct 0 ms 2016 KB Output is correct
7 Correct 0 ms 2016 KB Output is correct
8 Correct 0 ms 2016 KB Output is correct
9 Correct 0 ms 2016 KB Output is correct
10 Correct 0 ms 2016 KB Output is correct
11 Correct 0 ms 2016 KB Output is correct
12 Correct 0 ms 2016 KB Output is correct
13 Correct 39 ms 2016 KB Output is correct
14 Correct 0 ms 2016 KB Output is correct
15 Correct 0 ms 2016 KB Output is correct
16 Correct 0 ms 2016 KB Output is correct
17 Correct 0 ms 2016 KB Output is correct
18 Correct 3 ms 2016 KB Output is correct
19 Correct 0 ms 2016 KB Output is correct
20 Correct 36 ms 2016 KB Output is correct
21 Correct 39 ms 2016 KB Output is correct
22 Correct 0 ms 2016 KB Output is correct
23 Correct 39 ms 2016 KB Output is correct
24 Correct 0 ms 2016 KB Output is correct
25 Correct 0 ms 2016 KB Output is correct
26 Correct 0 ms 2016 KB Output is correct
27 Correct 0 ms 2016 KB Output is correct
28 Correct 0 ms 2016 KB Output is correct
29 Correct 0 ms 2016 KB Output is correct
30 Correct 0 ms 2016 KB Output is correct
31 Correct 0 ms 2016 KB Output is correct
32 Correct 0 ms 2016 KB Output is correct
33 Correct 0 ms 2016 KB Output is correct
34 Correct 0 ms 2016 KB Output is correct
35 Correct 0 ms 2016 KB Output is correct
36 Correct 0 ms 2016 KB Output is correct
37 Correct 0 ms 2016 KB Output is correct
38 Correct 0 ms 2016 KB Output is correct
39 Correct 0 ms 2016 KB Output is correct
40 Correct 13 ms 2016 KB Output is correct
41 Correct 0 ms 2016 KB Output is correct
42 Correct 0 ms 2016 KB Output is correct
43 Incorrect 3 ms 2016 KB Output isn't correct
44 Halted 0 ms 0 KB -