Submission #1172617

#TimeUsernameProblemLanguageResultExecution timeMemory
1172617nguyenkhangninh99Global Warming (CEOI18_glo)C++17
100 / 100
36 ms5824 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, x; cin >> n >> x; vector<int> a(n + 1), dp(n + 1), b, c; for(int i = 0; i < n; i++){ cin >> a[i]; int id = lower_bound(b.begin(), b.end(), a[i]) - b.begin(); if(b.empty() || a[i] > b.back()) b.push_back(a[i]); else b[id] = a[i]; dp[i] = id + 1; } for(int i = n - 1; i >= 0; i--){ dp[i] += lower_bound(c.begin(), c.end(), -a[i] + x) - c.begin(); if(c.empty() || -a[i] > c.back()) c.push_back(-a[i]); else c[lower_bound(c.begin(), c.end(), -a[i]) - c.begin()] = -a[i]; } cout << *max_element(dp.begin(), dp.end()); }
#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...