제출 #43634

#제출 시각아이디문제언어결과실행 시간메모리
43634BruteforcemanBali Sculptures (APIO15_sculpture)C++11
50 / 100
96 ms1240 KiB
#include "bits/stdc++.h"
using namespace std;
int a[2005];
int dp[2005];
int n, A, B;
typedef long long Long;
Long p[2005];
 
const int bit = 42;
long long mask;
const int inf = 1e8;
 
void solve (int x) {
	mask ^= 1LL << x;
	for(int i = 1; i <= n; i++) {
		dp[i] = inf;
		for(int j = 0; j < i; j++) {
			long long sum = p[i] - p[j];
			if((sum | mask) == mask) dp[i] = min(dp[i], dp[j] + 1);
		}
	}
	if(dp[n] > B) {
		mask |= (1LL << x);
	}
}
 
int main(int argc, char const *argv[])
{	
	scanf("%d %d %d", &n, &A, &B);
	for(int i = 1; i <= n; i++) {
		scanf("%d", a + i);
	}
	for(int i = 1; i <= n; i++) {
		p[i] = p[i - 1] + a[i];
	}
	for(int i = 0; i <= bit; i++) {
		mask |= 1LL << i;
	}
	for(int x = bit; x >= 0; x--) {
		solve(x);
	}
	printf("%lld\n", mask);
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

sculpture.cpp: In function 'int main(int, const char**)':
sculpture.cpp:29:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d", &n, &A, &B);
                               ^
sculpture.cpp:31:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", a + i);
                     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...