제출 #91549

#제출 시각아이디문제언어결과실행 시간메모리
91549Bodo171Bali Sculptures (APIO15_sculpture)C++14
71 / 100
33 ms2028 KiB
#include <iostream>
#include <fstream>
using namespace std;
const int nmax=2005;
long long v[nmax];
bool dp[105][105];
long long sum,frb,ans;
int n,i,j,k,a,b;
bool chk_brt(long long val)
{
    dp[0][0]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
           dp[i][j]=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
    {
        sum=0;
        for(k=j;k>=1;k--)
        {
            sum+=v[k];
            if((sum&frb)==0)
                dp[i][j]|=dp[i-1][k-1];
        }
        if(i>=a&&i<=b&&dp[i][n])
            return 1;
    }
    return 0;
}
bool check(long long val)
{
    frb=(((1LL<<61)-1)^val);
    if(n<=100) return chk_brt(val);
    return 0;
}
int main()
{
    //freopen("data.in","r",stdin);
    cin>>n>>a>>b;
    for(i=1;i<=n;i++)
        cin>>v[i];
    ans=(1LL<<61)-1;
    for(long long p=60;p>=0;p--)
        if(check(ans-(1LL<<p)))
          ans-=(1LL<<p);
    cout<<ans;
    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...