# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1274787 | sakka | Global Warming (CEOI18_glo) | C++20 | 37 ms | 6228 KiB |
#include<bits/stdc++.h>
#define ll long long
#define fi first
#define sec second
#define pb push_back
#define pint pair<long long, long long>
using namespace std;
void freop(){
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
}
const ll INF = 1e18, mod = 1e9+7;
ll n, x;
vector<ll>vec(2e5+2);
void solve(){
cin >> n >> x;
for(int i=1; i<=n; i++){
cin >> vec[i];
}
vector<ll> lis;
vector<ll> sme(n+1), sz(n+1);
ll mxsz = 0, ans = 0;
for(int i=n; i>=1; i--){
if(!lis.size()){
lis.pb(-vec[i]);
}
else{
auto it = lower_bound(lis.begin(), lis.end(), -vec[i]) - lis.begin();
if(it == lis.size()) lis.pb(-vec[i]);
else lis[it] = -vec[i];
}
mxsz = max(mxsz, (ll)lis.size());
sme[i] = -lis[lis.size()-1];
sz[i] = lis.size();
}
mxsz = 0; lis.clear();
for(int i=1; i<=n; i++){
vec[i] -= x;
if(!lis.size()){
lis.pb(vec[i]);
}
else{
auto it = lower_bound(lis.begin(), lis.end(), vec[i]) - lis.begin();
if(it == lis.size()) lis.pb(vec[i]);
else lis[it] = vec[i];
}
if(lis.size() > mxsz){
mxsz = lis.size();
}
if(i < n){
auto it = lower_bound(lis.begin(), lis.end(), sme[i+1]) - lis.begin();
ans = max(ans, sz[i+1] + it);
}
else ans = max(ans, (ll)lis.size());
// cout << i << " " << lis.size() << " " << sz[i+1] << endl;
}
cout << ans << endl;
}
int main(){
ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
// freop();
solve();
}
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... |