제출 #220002

#제출 시각아이디문제언어결과실행 시간메모리
220002MKopchev수열 (APIO14_sequence)C++14
50 / 100
2090 ms3176 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=1e5+42,kmax=2e2+5; long long dp[kmax][nmax]; int n,k; int inp[nmax]; long long pref[nmax]; long long ask(int l,int r) { return pref[r]-pref[l-1]; } long long score(int j,int i) { return ask(1,j)*ask(j+1,i); } int output[nmax]; int main() { scanf("%i%i",&n,&k); for(int i=1;i<=n;i++) { scanf("%i",&inp[i]); pref[i]=pref[i-1]+inp[i]; } for(int cuts=1;cuts<=k;cuts++) for(int i=1;i<=n;i++) { if(i<cuts){dp[cuts][i]=-1e18;continue;} for(int j=cuts-1;j<i;j++) dp[cuts][i]=max(dp[cuts][i],dp[cuts-1][j]+score(j,i)); } printf("%lld\n",dp[k][n]); int pos=n; for(int cuts=k;cuts>=1;cuts--) { for(int j=pos-1;j>=1;j--) if(dp[cuts][pos]==dp[cuts-1][j]+score(j,pos)) { output[cuts]=j; pos=j; break; } } for(int i=1;i<=k;i++) { printf("%i",output[i]); if(i==k)printf("\n"); else printf(" "); } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

sequence.cpp: In function 'int main()':
sequence.cpp:24:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&k);
     ~~~~~^~~~~~~~~~~~~~
sequence.cpp:27:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i",&inp[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...
#Verdict Execution timeMemoryGrader output
Fetching results...