제출 #717187

#제출 시각아이디문제언어결과실행 시간메모리
717187PanosPaskGlobal Warming (CEOI18_glo)C++14
0 / 100
51 ms5240 KiB
#include <bits/stdc++.h> #define MAXN 200000 using namespace std; int n, x; int a[MAXN + 2]; int dp[MAXN + 2]; int inc_lis[MAXN + 2]; int dec_lis[MAXN + 2]; bool cont[MAXN + 2]; int main(void) { scanf("%d %d", &n, &x); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); } for (int i = 0; i <= n + 1; i++) { dp[i] = INT_MAX; } dp[0] = INT_MIN; for (int i = 1; i <= n; i++) { int curval = a[i]; int l = 0; int r = n; while (r > l + 1) { int mid = (l + r) / 2; if (dp[mid] < curval) l = mid; else r = mid; } dp[l+1] = curval; inc_lis[i] = l+1; } for (int i = 0; i <= n; i++) dp[i] = INT_MIN; dp[n+1] = INT_MAX; dec_lis[n+1] = 0; for (int i = n; i >= 1; i--) { int curval = a[i]; int l = 0; int r= n+1; while (r > l + 1) { int mid = (l + r) / 2; if (dp[mid] > curval) r = mid; else l = mid; } dp[r-1] = curval; if (dec_lis[i+1] < n - (r-1)) { dec_lis[i] = n - (r-1); cont[i] = true; } else { dec_lis[i] = dec_lis[i+1]; cont[i] = false; } } int ans = 0; for (int i = 1; i <= n; i++) ans = max(ans, inc_lis[i] + dec_lis[i] - cont[i]); // Avoid doublecounting i printf("%d\n", ans); return 0; }

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

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