Submission #1281563

#TimeUsernameProblemLanguageResultExecution timeMemory
1281563StefanSebezBali Sculptures (APIO15_sculpture)C++20
71 / 100
1092 ms1864 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double #define mp make_pair void chmn(ll &x,ll y){x=min(x,y);} void chmx(ll &x,ll y){x=max(x,y);} void chmn(int &x,int y){x=min(x,y);} void chmx(int &x,int y){x=max(x,y);} const int N=2050,lg=60; const ll inf=(1LL<<60)-1; int n,A,B,a[N]; bool dp[N][N]; bool Check(ll s){ for(int i=0;i<=n;i++) for(int k=0;k<=B;k++) dp[i][k]=0; dp[0][0]=1; for(int i=1;i<=n;i++){ for(int k=1;k<=B;k++){ ll sum=0; for(int j=i-1;j>=0;j--){ sum+=a[j+1]; if(((sum|s)==s)&&dp[j][k-1]){dp[i][k]=1;break;} } } } for(int k=A;k<=B;k++) if(dp[n][k]) return true; return false; } int main(){ scanf("%i%i%i",&n,&A,&B); for(int i=1;i<=n;i++) scanf("%i",&a[i]); ll s=(1LL<<lg)-1; for(ll i=lg-1;i>=0;i--){ s^=1LL<<i; if(!Check(s)) s^=1LL<<i; } printf("%lld\n",s); return 0; }

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:33:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |     scanf("%i%i%i",&n,&A,&B);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
sculpture.cpp:34:32: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |     for(int i=1;i<=n;i++) scanf("%i",&a[i]);
      |                           ~~~~~^~~~~~~~~~~~
#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...