제출 #133563

#제출 시각아이디문제언어결과실행 시간메모리
133563junodeveloperBali Sculptures (APIO15_sculpture)C++14
37 / 100
26 ms572 KiB
#include <bits/stdc++.h>
#define sz(x) (int)x.size()
#define fi first
#define se second
using namespace std;
int n, A, B, a[2010];
bool chk[2010][2010], chk2[2010];
inline bool f(int x,int sum,int p) {
	return (~x&sum)/(1<<p)==0;
}
bool Check1 (int x, int p) {
	int i,j,k,sum;
	for(i=1;i<=n;i++) {
		chk[i][1]=f(x,a[i],p);
		for(j=2;j<=i;j++) {
			chk[i][j]=false;
			for(k=i-1;k>=j-1;k--) {
				sum=a[i]-a[k];
				if(f(x,sum,p)) {
					chk[i][j]|=chk[k][j-1];
				}
			}
		}
	}
	bool res=false;
	for(i=A;i<=B;i++) res|=chk[n][i];
	return res;
}
bool Check2(int x, int p) {
	int i,j,k,sum;
	for(i=1;i<=n;i++) {
		chk2[i]=f(x,a[i],p);
		for(k=i-1;k>=1;k--) {
			sum=a[i]-a[k];
			if(f(x,sum,p)) {
				chk2[i]|=chk2[k];
			}
		}
	}
	return chk2[n];
}
int main() {
	int task;
	scanf("%d%d%d",&n,&A,&B);
	if(n<=100) task=0;
	else task=1;
	int i;
	for(i=1;i<=n;i++) {
		scanf("%d",a+i);
		a[i]+=a[i-1];
	}
	int res=0;
	for(i=31;i>=0;i--) {
		if(task) { if(!Check2(res,i)) res|=1<<i; }
		else { if(!Check1(res,i)) res|=1<<i; }
	}
	printf("%d",res);
	return 0;
}

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

sculpture.cpp: In function 'bool Check2(int, int)':
sculpture.cpp:30:8: warning: unused variable 'j' [-Wunused-variable]
  int i,j,k,sum;
        ^
sculpture.cpp: In function 'int main()':
sculpture.cpp:44:7: 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:49:8: 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...