Submission #1241993

#TimeUsernameProblemLanguageResultExecution timeMemory
1241993timeflewGlobal Warming (CEOI18_glo)C++20
0 / 100
38 ms2628 KiB
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define ff first
#define ss second
#define all(x) x.begin(), x.end()

#ifdef debug
#define dbg(...) cerr<<#__VA_ARGS__<<" = ", de(__VA_ARGS__)
template<typename T>
void de(T t) {cerr<<t<<endl;}
template<typename T, typename ...U>
void de(T t, U...u) {cerr<<t<<", ", de(u...);}
#else
#define dbg(...)
#define endl "\n"
#endif

void usaco(string s) {
    freopen((s+".in").c_str(), "r", stdin);
    freopen((s+".out").c_str(), "w", stdout);
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n, x; cin>>n>>x;
    vector<int> t(n);
    for(int i=0; i<n; i++) cin>>t[i];
    vector<int> ans(n), ans1(n);
    vector<int> dp, dp1;
    int len=0;
    for(int i=0; i<n; i++) {
        auto it=lower_bound(all(dp), t[i]);
        if(it==dp.end()) {
            dp.push_back(t[i]);
        } else {
            dp[it-dp.begin()]=t[i];
        }
        ans[i]=dp.size();
        len=max(len, ans[i]);
    }
    for(int i=n-1; i>=0; i--) {
        auto it1=lower_bound(all(dp1), t[i]+x, greater<int>());
        if(it1==dp1.end()) { 
            dp1.push_back(t[i]+x);
        } else {
            dp1[it1-dp1.begin()]=t[i]+x;
        }
        auto it=lower_bound(all(dp1), t[i], greater<int>());
        len=max(len, int(it-dp1.begin())+ans[i]-1);
    }
    cout<<len;
    return 0;
}
//rating below 2000 must be solved 2700 should be solved orzorzorz
//dp so hard

Compilation message (stderr)

glo.cpp: In function 'void usaco(std::string)':
glo.cpp:21:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |     freopen((s+".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
glo.cpp:22:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |     freopen((s+".out").c_str(), "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...