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;
typedef long long ll;
ll n,x,v[200005],ans,dp[200005],maxim[200005];
ll getLIS()
{
ll rez=0;
for(int i=1;i<=n;i++)
maxim[i]=-2e9;
for(int i=n;i>=1;i--)
{
int lg=0;
int st=1;
int dr=n-i;
while(st<=dr)
{
int mij=(st+dr)/2;
if(maxim[mij]>v[i])
{
lg=mij;
st=mij+1;
}
else
dr=mij-1;
}
dp[i]=lg+1;
rez=max(rez,dp[i]);
maxim[dp[i]]=max(maxim[dp[i]],v[i]);
}
return rez;
}
int main()
{
cin>>n>>x;
for(int i=1;i<=n;i++)
cin>>v[i];
ans=getLIS();
for(int i=1;i<=n;i++)
{
v[i]-=x;
ans=max(ans,getLIS());
}
cout<<ans;
return 0;
}
# | 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... |