제출 #93213

#제출 시각아이디문제언어결과실행 시간메모리
93213emil_physmath수열 (APIO14_sequence)C++17
0 / 100
483 ms17480 KiB
#include <iostream> using namespace std; const int MAXN=10001, MAXK=201; int a[MAXN], prefSum[MAXN], dp[MAXN][MAXK], lt[MAXN][MAXK]; int sum(int l, int r); int main() { int n, k; cin>>n>>k; for (int i=0; i<n; i++) cin>>a[i]; prefSum[0]=a[0]; for (int i=1; i<n; i++) prefSum[i]=prefSum[i-1]+a[i]; for (int i=0; i<n; i++) { dp[i][0]=0; lt[i][0]=-1; for (int curk=1; curk<=min(k, i); curk++) { for (int prevSpl=0; prevSpl<i; prevSpl++) if (dp[prevSpl][curk-1]+sum(0, prevSpl)*sum(prevSpl+1, i)>dp[i][curk]) { dp[i][curk]=dp[prevSpl][curk-1]+sum(0, prevSpl)*sum(prevSpl+1, i); lt[i][curk]=prevSpl; } cout<<"dp["<<i<<"]["<<curk<<"] = "<<dp[i][curk]<<'\t'; cout<<"lt["<<i<<"]["<<curk<<"] = "<<lt[i][curk]<<'\n'; } } cout<<dp[n-1][k]<<'\n'; int cur=n-1; while (k) { cur=lt[cur][k]; k--; cout<<cur+1<<' '; } cout<<'\n'; char I; cin >> I; return 0; } int sum(int l, int r) { return l ? prefSum[r]-prefSum[l-1] : prefSum[r]; }

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

sequence.cpp: In function 'int main()':
sequence.cpp:22:4: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
    for (int prevSpl=0; prevSpl<i; prevSpl++)
    ^~~
sequence.cpp:28:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
     cout<<"dp["<<i<<"]["<<curk<<"] = "<<dp[i][curk]<<'\t';
     ^~~~
#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...