Submission #656423

#TimeUsernameProblemLanguageResultExecution timeMemory
656423ono_de206Global Warming (CEOI18_glo)C++14
62 / 100
100 ms6324 KiB
#include<bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define in insert #define all(x) x.begin(),x.end() #define pb push_back #define eb emplace_back #define ff first #define ss second typedef long long ll; //#define int long long template<typename T> void mxx(T &a, T b){if(b>a) a=b;} template<typename T> void mnn(T &a, T b){if(b<a) a=b;} const int mxn=2e5+10; pair<int,int> pre[mxn],suf[mxn]; int a[mxn]; signed main(){ int n,x; cin>>n>>x; for(int i=1; i<=n; i++){ cin>>a[i]; } vector<int> g; pre[0]={0,-1e9}; suf[n+1]={0,1e9}; for(int i=1; i<=n; i++){ pre[i]=pre[i-1]; int gg=lower_bound(all(g),a[i])-g.begin(); if(gg==g.size()) g.pb(a[i]); else g[gg]=a[i]; mxx(pre[i],{(int)g.size(),-g.back()}); } g.clear(); for(int i=n; i>=1; i--){ suf[i]=suf[i+1]; int gg=lower_bound(all(g),-a[i])-g.begin(); if(gg==g.size()) g.pb(-a[i]); else g[gg]=-a[i]; mxx(suf[i],{(int)g.size(),-g.back()}); } // for(int i=1; i<=n; i++){ // cout<<pre[i].ff<<' '<<pre[i].ss<<'\n'; // } int ans=0; for(int i=0; i<=n; i++){ if(-pre[i].ss<suf[i+1].ss) mxx(ans,pre[i].ff+suf[i+1].ff); else if(-pre[i].ss-suf[i+1].ss+1<=x) mxx(ans,pre[i].ff+suf[i+1].ff); } cout<<ans<<'\n'; }

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:39:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |   if(gg==g.size()) g.pb(a[i]);
      |      ~~^~~~~~~~~~
glo.cpp:47:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   if(gg==g.size()) g.pb(-a[i]);
      |      ~~^~~~~~~~~~
#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...