Submission #338921

#TimeUsernameProblemLanguageResultExecution timeMemory
338921ogibogi2004Bali Sculptures (APIO15_sculpture)C++14
71 / 100
1099 ms4608 KiB
#include<bits/stdc++.h> using namespace std; #define try ico #define ll long long const ll MAXN=2048; ll y[MAXN],n,a,b; bool dp[MAXN][MAXN]; bool try(ll mask) { memset(dp,0,sizeof(dp)); dp[1][0]=1; for(int i=1;i<=n;i++) { ll sum=0; for(int j=i;j<=n;j++) { sum+=y[j]; if((mask&sum)==sum&&(mask|sum)==mask) { for(int l=0;l<=n;l++) { dp[j+1][l+1]|=dp[i][l]; } } } } for(ll i=a;i<=b;i++) { if(dp[n+1][i]) { return 1; } } return 0; } int main() { cin>>n>>a>>b; for(int i=1;i<=n;i++) { cin>>y[i]; } ll mask=(1ll<<60)-1; for(ll i=59;i>=0;i--) { if(try(mask-(1ll<<i))) { mask-=(1ll<<i); } } cout<<mask<<endl; return 0; }
#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...