Submission #1271832

#TimeUsernameProblemLanguageResultExecution timeMemory
1271832win1702Global Warming (CEOI18_glo)C++20
62 / 100
33 ms5012 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; #define MAXN 200005 #define INF 1000000001 #define MOD 1000000007 #define FOR(i, l, r) for (int i = l; i <= r; ++i) #define FOD(i, r, l) for (int i = r; i >= l; i--) #define fillchar(a, x) memset(a, x, sizeof(a)) #define rep(i, n) for (int i = 0, _n = (n); i < _n; ++i) #define BIT(x,i) ((x>>i)&1) #define MASK(i) (1ll<<(i)) #define FILE "" void fastip(){ ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); if (fopen(FILE".inp","r")){ freopen(FILE".inp","r",stdin); freopen(FILE".out","w",stdout); } } const int MAX=100005; const int div2=(MOD+1)/2; int n; ll x; vector<int> lis1; vector<int> lis2; vector<int> lis; vector<int> a; vector<int> mn,mx; void solve(){ cin>>n>>x; a.resize(n+10); mn.resize(n+10,INF); mx.resize(n+10,-INF); lis1.resize(n+10,0); lis2.resize(n+10,0); FOR(i,1,n) cin>>a[i]; if (n==1){ cout<<1; return; } FOR(i,1,n){ int pos=lower_bound(lis.begin(),lis.end(),a[i])-lis.begin(); if (pos==(int)lis.size()) lis.push_back(a[i]); else lis[pos]=a[i]; lis1[i]=lis.size(); mx[i]=lis.back(); // for(int j:lis) cout<<j<<' ';cout<<'\n'; } lis.clear(); FOD(i,n,1){ int pos=lower_bound(lis.begin(),lis.end(),-a[i])-lis.begin(); if (pos==(int)lis.size()) lis.push_back(-a[i]); else lis[pos]=-a[i]; lis2[i]=lis.size(); mn[i]=-lis.back(); } //// // FOR(i,1,n) cout<<lis1[i]<<' ';cout<<'\n'; // FOR(i,1,n) cout<<lis2[i]<<' ';cout<<'\n'; // FOR(i,1,n) cout<<mx[i]<<' ';cout<<'\n'; // FOR(i,1,n) cout<<mn[i]<<' ';cout<<'\n'; int best=0; FOR(i,1,n) best=max(best,lis1[i]); FOR(i,1,n-1){ if (1ll*mx[i]-x<1ll*mn[i+1]){ best=max(best,lis1[i]+lis2[i+1]); } } cout<<best; } int main(){ fastip(); solve(); }

Compilation message (stderr)

glo.cpp: In function 'void fastip()':
glo.cpp:23:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |         freopen(FILE".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
glo.cpp:24:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |         freopen(FILE".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...