제출 #422656

#제출 시각아이디문제언어결과실행 시간메모리
422656snasibov05Global Warming (CEOI18_glo)C++14
컴파일 에러
0 ms0 KiB
#include <iostream> #include <vector> using namespace std; #define oo 1000000000 int main() { int n, x; cin >> n >> x; vector<int> v(n); for (int i = 0; i < n; ++i) { cin >> v[i]; } int sz = 1; vector<int> dp(n); vector<int> c(n+1, oo); c[0] = 0; c[1] = v[0]; dp[0] = 1; for (int i = 1; i < n; ++i) { if (v[i] < c[1]) c[1] = v[i], dp[i] = 1; else if (v[i] > c[sz]) c[sz+1] = v[i], dp[i] = ++sz; else { int k = lower_bound(c.begin(), c.end(), v[i]) - c.begin(); c[k] = v[i]; dp[i] = k; } } int ans = dp[n-1]; c.assign(n+1, 0); c[0] = oo + oo; c[1] = v[n-1] + x; dp[n-1] = 1; sz = 1; for (int i = n-2; i >= 0; --i){ if (v[i] > c[1]) ans = max(ans, dp[i]); else if (v[i] < c[sz]) ans = max(ans, dp[i] + sz); else{ int k = upper_bound(c.rbegin(), c.rend(), v[i]) - c.rbegin(); k = n - k; ans = max(ans, dp[i] + k); } if (v[i] + x > c[1]) c[1] = v[i] + x; else if (v[i] + x < c[sz]) c[++sz] = v[i] + x; else{ int k = upper_bound(c.rbegin(), c.rend(), v[i] + x) - c.rbegin(); k = n - k + 1; c[k] = v[i] + x; } } cout << ans << "\n"; return 0; }

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

glo.cpp: In function 'int main()':
glo.cpp:43:21: error: 'upper_bound' was not declared in this scope
   43 |             int k = upper_bound(c.rbegin(), c.rend(), v[i]) - c.rbegin();
      |                     ^~~~~~~~~~~
glo.cpp:51:21: error: 'upper_bound' was not declared in this scope
   51 |             int k = upper_bound(c.rbegin(), c.rend(), v[i] + x) - c.rbegin();
      |                     ^~~~~~~~~~~