답안 #33727

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
33727 2017-11-01T08:03:51 Z sinhriv Bali Sculptures (APIO15_sculpture) C++14
0 / 100
0 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);
		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);
                               ^
# 결과 실행 시간 메모리 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 Incorrect 0 ms 2016 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 Incorrect 0 ms 2016 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 Incorrect 0 ms 2016 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 Incorrect 0 ms 2016 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 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 Incorrect 0 ms 2016 KB Output isn't correct
6 Halted 0 ms 0 KB -