Submission #106713

#TimeUsernameProblemLanguageResultExecution timeMemory
106713brcodeBali Sculptures (APIO15_sculpture)C++17
50 / 100
165 ms516 KiB
#include <iostream> using namespace std; const long long MAXN = (long long)1e5+5; long long arr[MAXN]; long long n,l,r; bool check(long long val){ long long dp[n+(long long)1]; for(long long i=0;i<=n;i++){ dp[i] = (long long)1e9; } dp[0] = 0; for(long long i=(long long)1;i<=n;i++){ for(long long j=0;j<i;j++){ if(((arr[i]-arr[j])|val) == val){ dp[i] = min(dp[i],dp[j]+(long long)1); } } } return dp[n]>=l && dp[n]<=r; } int main(){ cin>>n>>l>>r; for(long long i=(long long)1;i<=n;i++){ cin>>arr[i]; arr[i]+=arr[i-(long long)1]; } long long val = ((long long)1<<50)-(long long)1; for(long long i=49;i>=0;i--){ if(check(val^((long long)1<<i))){ val^=((long long)1<<i); // cout<<val<<endl; } } cout<<val<<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...