Submission #732809

#TimeUsernameProblemLanguageResultExecution timeMemory
732809penguin133Bali Sculptures (APIO15_sculpture)C++17
50 / 100
137 ms460 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pi pair<int, int> #define pii pair<int, pi> #define fi first #define se second #ifdef _WIN32 #define getchar_unlocked _getchar_nolock #endif mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int n, a, b, A[2005], dp[2005]; bool dp2[105][105]; void solve(){ cin >> n >> a >> b; for(int i=1;i<=n;i++)cin >> A[i]; if(a > 1){ int ans = 0, bt = 45, tmp = 0; while(bt >= 0){ tmp += (1ll << bt); dp2[0][0] = 1; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ dp2[i][j] = 0; int sm = 0; for(int k=j;k>=1;k--){ sm += A[k]; if((sm & tmp) == 0)dp2[i][j] |= dp2[k-1][j-1]; } } } bool f = 0; for(int i=a;i<=b;i++)if(dp2[n][i])f = 1; if(!f)ans += (1ll << bt), tmp -= (1ll << bt); bt--; } cout << ans; return; } int ans = 0, bt = 45, tmp = 0; while(bt >= 0){ tmp += (1ll << bt); for(int i=1;i<=n;i++){ int sm = 0; dp[i] = 1e18; for(int j=i;j>=1;j--){ sm += A[j]; if((sm&tmp) == 0)dp[i] = min(dp[i], dp[j-1] + 1); } } if(dp[n] > b)ans += (1ll << bt), tmp -= (1ll << bt); bt--; } cout << ans; } main(){ ios::sync_with_stdio(0);cin.tie(0); int tc = 1; //cin >> tc; for(int tc1=1;tc1<=tc;tc1++){ // cout << "Case #" << tc1 << ": "; solve(); } }

Compilation message (stderr)

sculpture.cpp:59:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   59 | main(){
      | ^~~~
#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...