Submission #43777

#TimeUsernameProblemLanguageResultExecution timeMemory
43777ExtazyBali Sculptures (APIO15_sculpture)C++14
21 / 100
6 ms2120 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2007; int n,a,b; long long ans; bool used[N][N]; long long state[N][N]; long long arr[N]; long long get_sum(int l, int r) { return arr[r]-arr[l-1]; } long long recurse(int pos, int groups) { if(groups<0) return 1000000000000000000; if(pos>n) { if(groups==0) return 0; return 1; } if(used[pos][groups]) return state[pos][groups]; int i; long long ans=1000000000000000000; for(i=pos;i<=n;i++) { ans=min(ans,recurse(i+1,groups-1)|get_sum(pos,i)); } used[pos][groups]=true; return state[pos][groups]=ans; } int main() { int i; scanf("%d %d %d", &n, &a, &b); for(i=1;i<=n;i++) { scanf("%lld", &arr[i]); arr[i]+=arr[i-1]; } ans=recurse(1,a); while(++a<=b) ans=min(ans,recurse(1,a)); printf("%lld\n", ans); return 0; }

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:40:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %d", &n, &a, &b);
                                  ^
sculpture.cpp:42:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%lld", &arr[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...