제출 #218801

#제출 시각아이디문제언어결과실행 시간메모리
218801LawlietBigger segments (IZhO19_segments)C++14
37 / 100
112 ms38904 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int lli; const int MAXN = 5010; int n; int v[MAXN]; int curMx[MAXN]; int dp[MAXN][MAXN]; lli sv[MAXN]; int main() { scanf("%d",&n); for(int i = 1 ; i <= n ; i++) scanf("%d",&v[i]); for(int i = 1 ; i <= n ; i++) sv[i] = sv[i - 1] + v[i]; for(int i = 1 ; i <= n ; i++) dp[n + 1][i] = 1; for(int i = n ; i > 0 ; i--) { int p = i; for(int j = n ; j >= i ; j--) { curMx[j] = curMx[j + 1]; curMx[j] = max( curMx[j] , dp[j + 1][i] ); } for(int j = i - 1 ; j >= 0 ; j--) { lli lastSum = sv[i - 1] - sv[j - 1]; while( p <= n && sv[p] - sv[i - 1] < lastSum ) p++; dp[i][j] = curMx[p] + 1; } } int ans = 0; for(int i = 1 ; i <= n ; i++) ans = max( ans , dp[i + 1][1] ); printf("%d\n",ans); }

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

segments.cpp: In function 'int main()':
segments.cpp:18:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
  ~~~~~^~~~~~~~~
segments.cpp:21:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&v[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...