Submission #36800

#TimeUsernameProblemLanguageResultExecution timeMemory
36800imaxblueBali Sculptures (APIO15_sculpture)C++14
100 / 100
113 ms2048 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define mp make_pair #define pb push_back #define x first #define y second #define pii pair<int, int> #define p3i pair<pii, int> #define pll pair<ll, ll> #define p3l pair<pll, ll> #define lseg L, (L+R)/2, N*2+1 #define rseg (L+R)/2+1, R, N*2+2 #define ub upper_bound #define lb lower_bound #define p_q priority_queue #define MN 1000000009 int n, a, b, dp2[2005], l, l2, l3; bool dp[105][105]; ll k, psa[2005]; bool check(ll L){ if (a==1){ memset(dp2, 0x3f3f3f3f, sizeof dp2); dp2[0]=0; for (l=1; l<=n; ++l){ for (l2=0; l2<l; ++l2){ if (((psa[l]-psa[l2])&(~k))<L) dp2[l]=min(dp2[l], dp2[l2]+1); } } return (dp2[n]<=b); } memset(dp, 0, sizeof dp); dp[0][0]=1; for (l=1; l<=n; ++l){ for (l2=0; l2<l; ++l2){ for (l3=1; l3<=b; ++l3){ if (((psa[l]-psa[l2])&(~k))<L) dp[l][l3]|=dp[l2][l3-1]; } } } for (int l=a; l<=b; ++l) if (dp[n][l]) return 1; return 0; } int main(){ scanf("%i%i%i", &n, &a, &b); for (int l=1; l<=n; ++l){ scanf("%i", &psa[l]); psa[l]+=psa[l-1]; } for (int l=41; l>=0; --l){ //if (l<10) cout << k << endl; if (!check((1LL << l))) k+=(1LL << l); } cout << k; return 0; }

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:51:28: warning: format '%i' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
         scanf("%i", &psa[l]); psa[l]+=psa[l-1];
                            ^
sculpture.cpp:49:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i%i", &n, &a, &b);
                                ^
sculpture.cpp:51:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i", &psa[l]); psa[l]+=psa[l-1];
                             ^
#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...