제출 #215893

#제출 시각아이디문제언어결과실행 시간메모리
215893T0p_수열 (APIO14_sequence)C++14
39 / 100
2089 ms5436 KiB
#include<bits/stdc++.h> using namespace std; int back[202][100100]; long long arr[100100], qs[100100], dp[202][100100]; stack<int> p; int main() { int n, m; scanf(" %d %d",&n,&m); assert(m > 0); for(int i=1 ; i<=n ; i++) { scanf(" %lld",&arr[i]); qs[i] = arr[i] + qs[i-1]; } for(int i=1 ; i<=m ; i++) { for(int j=i ; j<=n ; j++) { int pos; for(int k=i-1 ; k<j ; k++) { long long nv = dp[i-1][k] + (qs[j] - qs[k]) * (qs[n] - qs[j]); if(nv > dp[i][j]) { dp[i][j] = nv; pos = k; } } back[i][j] = pos; } } int pos; long long Mval = 0; for(int i=m ; i<=n ; i++) { if(dp[m][i] > Mval) { Mval = dp[m][i]; pos = i; } } for(int i=m ; i>0 ; i--) { p.push(pos); pos = back[i][pos]; } printf("%lld\n",Mval); while(!p.empty()) { printf("%d ",p.top()); p.pop(); } return 0; }

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

sequence.cpp: In function 'int main()':
sequence.cpp:11:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf(" %d %d",&n,&m);
  ~~~~~^~~~~~~~~~~~~~~~
sequence.cpp:15:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf(" %lld",&arr[i]); 
   ~~~~~^~~~~~~~~~~~~~~~~
sequence.cpp:48:20: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized]
   pos = back[i][pos];
         ~~~~~~~~~~~^
sequence.cpp:32:15: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized]
    back[i][j] = pos;
    ~~~~~~~~~~~^~~~~
#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...