# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1214219 | Bula | Global Warming (CEOI18_glo) | C++20 | 32 ms | 3396 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9 + 7, N = 2e5 + 5;
vector<int> dp;
void add(int x){
int pos = lower_bound(dp.begin(), dp.end(), x) - dp.begin();
if(pos == dp.size()) {
dp.push_back(x);
}else{
dp[pos] = x;
}
}
main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int n, x;
cin >> n >> x;
vector<int> a(n + 1);
for(int i = 1; i <= n; i++) cin >> a[i];
vector<int> p(n + 1);
for(int i = 1; i <= n; i++){
add(a[i] - x);
p[i] = dp.size();
}
dp.clear();
reverse(a.begin() + 1, a.end());
int ans = 0;
for(int i = 1; i <= n; i++){
add(-a[i]);
ans = max(ans, (int)dp.size() + p[n - i + 1] - 1);
}
cout << ans << '\n';
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |