제출 #1305713

#제출 시각아이디문제언어결과실행 시간메모리
1305713coolboy19521Bali Sculptures (APIO15_sculpture)C++20
21 / 100
1096 ms580 KiB
#include "bits/stdc++.h"

#define FOR(i,a,b)for(int i=(a);i<(b);i++)
#define F0R(i,a)FOR(i,0,a)
#define ROF(i,a,b)for(int i=(b)-1;i>=(a);i--)
#define R0F(i,a)ROF(i,0,a)
#define REP(a)F0R(_,a)

using namespace std;

const int mxl=45,mxm=2e3+20;

int y[mxm];

int main(){
	int n,a,b;cin>>n>>a>>b;
	FOR(i,1,n+1)cin>>y[i];
	if(a==1){
		long long fll=(1ll<<mxl)-1;
		long long msk=fll;
		R0F(i,mxl){
			msk^=1ll<<i;
			vector<vector<bool>>dp(n+1,vector<bool>(n+1,false));
			dp[0][0]=true;
			FOR(j,1,n+1){
				long long s=0;
				ROF(k,1,j+1){
					s+=y[k];
					FOR(l,1,k+1){
						bool exp=(dp[k-1][l-1] and (s&msk)==s);
						dp[j][l]=dp[j][l] or exp;
					}
				}
			}
			bool f=false;
			FOR(j,a,b+1)if(dp[n][j]){
				f=true;
				break;
			}
			if(not f)msk^=1ll<<i;
		}
		cout<<msk<<endl;
	}
}
#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...