Submission #127933

#TimeUsernameProblemLanguageResultExecution timeMemory
127933zoooma13Bali Sculptures (APIO15_sculpture)C++14
21 / 100
4 ms504 KiB
#include <bits/stdc++.h> using namespace std; #define MAX_N 102 int n ,a ,b; int y[MAX_N]; long long sum[MAX_N]; long long dpx[MAX_N][MAX_N]; long long solve(int i ,int p) { if(i > n) return p == 0 ? 0 : (1ull<<63)-1; if(p <= 0) return (1ull<<63)-1; auto&ret = dpx[i][p]; if(~ret) return ret; ret = (1ull<<63)-1; for(int j=i; j<=n; j++) ret = min(ret ,(sum[j]-sum[i-1])|solve(j+1 ,p-1)); return ret; } int main() { //srand(time(NULL)); //n = 100 ,a = 5 ,b = 100; scanf("%d%d%d",&n,&a,&b); assert(n < MAX_N); for(int i=1; i<=n; i++) scanf("%d",&y[i]) ,sum[i] = sum[i-1]+y[i]; //y[i] = rand()*10000+rand() ,sum[i] = sum[i-1]+y[i]; /*vector <long long> dp(n+1) ,curr_dp(n+1); long long ans = (a == 1 ? sum[n] : 1e18); for(int i=1; i<=n; i++) curr_dp[i] = sum[i]; for(int k=2; k<=b; k++){ swap(dp ,curr_dp); for(int i=k; i<=n; i++) { curr_dp[i] = 1e18; for(int j=k; j<=i; j++) curr_dp[i] = min(curr_dp[i] ,(sum[i]-sum[j-1])|dp[j-1]); } if(a <= k) ans = min(ans ,curr_dp[n]); } printf("%lld\n",ans);*/ long long ans2 = 1e18; memset(dpx ,-1 ,sizeof dpx); for(int i=a; i<=b; i++) ans2 = min(ans2 ,solve(1 ,i)); printf("%lld\n",ans2); } /** 6 1 3 8 1 2 1 5 4 5 5 5 1 2 3 4 5 */

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d",&n,&a,&b); assert(n < MAX_N);
     ~~~~~^~~~~~~~~~~~~~~~~~~
sculpture.cpp:32:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&y[i]) ,sum[i] = sum[i-1]+y[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...