Submission #1192240

#TimeUsernameProblemLanguageResultExecution timeMemory
1192240SofiatpcBali Sculptures (APIO15_sculpture)C++20
71 / 100
569 ms596 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int MAXN = 105; int dp[MAXN][MAXN], v[MAXN], ban[50]; bool ok(int x){ for(int i = 0; i <= 45; i++) if( ( x &(1LL<<i)) && ban[i] )return false; return true; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,a,b; cin>>n>>a>>b; for(int i = 1; i <= n; i++)cin>>v[i]; dp[n+1][0] = 1; int ans = 0; for(int bit = 45; bit >= 0; bit--){ ban[bit] = 1; for(int i = n; i >= 1; i--){ for(int x = 1; x <= b; x++){ dp[i][x] = 0; int sum = 0; for(int j = i+1; j <= n+1; j++){ sum += v[j-1]; if(ok(sum))dp[i][x] |= dp[j][x-1]; } } } ban[bit] = 0; ans += (1LL<<bit); for(int x = a; x <= b; x++) if(dp[1][x] == 1){ ban[bit] = 1; ans -= (1LL<<bit); break; } } cout<<ans<<"\n"; }
#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...