Submission #440811

#TimeUsernameProblemLanguageResultExecution timeMemory
440811den_tarGlobal Warming (CEOI18_glo)C++14
100 / 100
190 ms10124 KiB
#include <bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio();cin.tie();cout.tie(); #define en cout<<endl; #define ops cout<<"ops"<<endl; #define line cout<<"---------------------------"<<endl; #define fi first #define se second typedef long long ll; typedef long double ld; typedef pair<ll,ll> pllll; typedef string str; const ll DIM = 2e5 + 7; const ll DIMM = 5e4 + 7; const ll DDIM = 7; const ll INF = 1e18 + 7; const ll X = 1e5 + 7; const ll BS = 2e5 + 7; const ll AS = 26 + 7; const ll MODULO = 1e9 + 7; ll nt,n,m,k,q; ll a[DIM]; ll d1[DIM],d2[DIM],pos[DIM],pr[DIM]; ll l,r,mid; ll l1; ll res; int main() { fast; //ll x1,y1,x2,y2; cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]; d1[0]=(-INF); d2[0]=INF; for(int i=1;i<=n;i++){ d1[i]=INF; d2[i]=(-INF); } for(int i=1;i<=n;i++){ l=0;r=i-1; while(l<r){ mid=(l+r+1)/2; if(d1[mid]<a[i])l=mid; else r=mid-1; } pos[i]=l+1; pr[i]=d1[l+1]; d1[l+1]=a[i]; } res=(-INF); for(ll i=1;i<=n;i++) if(d1[i]!=INF)res=max(res,i); if(m==0){ cout<<res<<endl; return 0; } for(int i=n;i>=1;i--){ d1[pos[i]]=pr[i]; a[i]+=m; l=0;r=n-i; while(l<r){ mid=(l+r+1)/2; if(d2[mid]>a[i])l=mid; else r=mid-1; } if(d2[l]>a[i] && a[i]>d2[l+1])d2[l+1]=a[i]; l1=l+1; l=0;r=i-1; while(l<r){ mid=(l+r+1)/2; if(d1[mid]<a[i])l=mid; else r=mid-1; } res=max(res,(l1+l)); } cout<<res<<endl; return 0; }
#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...