Submission #1274788

#TimeUsernameProblemLanguageResultExecution timeMemory
1274788sakkaGlobal Warming (CEOI18_glo)C++20
62 / 100
37 ms6224 KiB
#include<bits/stdc++.h> #define ll long long #define fi first #define sec second #define pb push_back #define pint pair<long long, long long> using namespace std; void freop(){ freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); } const ll INF = 1e18, mod = 1e9+7; ll n, x; vector<ll>vec(2e5+2); void solve(){ cin >> n >> x; for(int i=1; i<=n; i++){ cin >> vec[i]; } vector<ll> lis; vector<ll> sme(n+1), sz(n+2); ll mxsz = 0, ans = 0; for(int i=n; i>=1; i--){ if(!lis.size()){ lis.pb(-vec[i]); } else{ auto it = lower_bound(lis.begin(), lis.end(), -vec[i]) - lis.begin(); if(it == lis.size()) lis.pb(-vec[i]); else lis[it] = -vec[i]; } mxsz = max(mxsz, (ll)lis.size()); sme[i] = -lis[lis.size()-1]; sz[i] = lis.size(); } mxsz = 0; lis.clear(); for(int i=1; i<=n; i++){ vec[i] -= x; if(!lis.size()){ lis.pb(vec[i]); } else{ auto it = lower_bound(lis.begin(), lis.end(), vec[i]) - lis.begin(); if(it == lis.size()) lis.pb(vec[i]); else lis[it] = vec[i]; } if(lis.size() > mxsz){ mxsz = lis.size(); } if(i < n){ auto it = lower_bound(lis.begin(), lis.end(), sme[i+1]) - lis.begin(); ans = max(ans, sz[i+1] + (ll)it); } ans = max(ans, (ll)lis.size()); // cout << i << " " << lis.size() << " " << sz[i+1] << endl; } cout << ans << endl; } int main(){ ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0); // freop(); solve(); }

Compilation message (stderr)

glo.cpp: In function 'void freop()':
glo.cpp:9:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |     freopen("input.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
glo.cpp:10:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     freopen("output.txt", "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...