Submission #929083

#TimeUsernameProblemLanguageResultExecution timeMemory
929083haru09Global Warming (CEOI18_glo)C++17
100 / 100
120 ms6472 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define task "code" const int ar=2e5+5; const ll mod=1e9+7; int n,x; int a[ar]; int l[ar],r[ar]; vector<int> v; int pos(int val) { return lower_bound(v.begin(),v.end(),val)-v.begin()+1; } int bit[ar]; void update(int u,int v) { int id=u; while(id<=n) { bit[id]=max(bit[id],v); id+=id&(-id); } } int get(int p) { int id=p; int ans=0; while(id>0) { ans=max(ans,bit[id]); id-=id&(-id); } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); if (fopen(task".inp","r")) { freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } cin>>n>>x; for (int i=1;i<=n;i++) { cin>>a[i]; v.push_back(a[i]); } sort(v.begin(),v.end()); for (int i=1;i<=n;i++) { int p=pos(a[i]); int dp=get(p-1)+1; update(p,dp); l[i]=dp; } for (int i=1;i<=n;i++) bit[i]=0; for (int i=n;i>=1;i--) { int p=n-pos(a[i]-x+1)+1; r[i]=get(p); p=n-pos(a[i])+1; int dp=get(p-1)+1; update(p,dp); } int ans=0; for (int i=1;i<=n;i++) ans=max(ans,l[i]+r[i]); cout<<ans; }

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:45:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |         freopen(task".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
glo.cpp:46:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 |         freopen(task".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#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...