# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
567024 | guagua0407 | Global Warming (CEOI18_glo) | C++17 | 70 ms | 5012 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define f first
#define s second
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int main() {_
int n,x;
cin>>n>>x;
vector<int> num(n);
for(auto &u:num){
cin>>u;
}
int l[n],r[n];
int ans=0;
vector<int> lis;
for(int i=0;i<n;i++){
int pos=lower_bound(lis.begin(),lis.end(),num[i])-lis.begin();
l[i]=pos+1;
pos=lower_bound(lis.begin(),lis.end(),num[i]-x)-lis.begin();
if(pos==lis.size()){
lis.push_back(num[i]-x);
}
else{
lis[pos]=num[i]-x;
}
}
lis.clear();
for(int i=n-1;i>=0;i--){
int pos=lower_bound(lis.begin(),lis.end(),num[i],greater<int>())-lis.begin();
if(pos==lis.size()){
lis.push_back(num[i]);
r[i]=lis.size();
}
else{
lis[pos]=num[i];
r[i]=pos+1;
}
}
for(int i=0;i<n;i++){
//cout<<l[i]<<' '<<r[i]<<'\n';
ans=max(ans,l[i]+r[i]-1);
}
cout<<ans;
return 0;
}
//maybe its multiset not set
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... |