Submission #1307764

#TimeUsernameProblemLanguageResultExecution timeMemory
1307764dolphyGlobal Warming (CEOI18_glo)C++20
100 / 100
130 ms16084 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb(a) push_back(a) #define pp pop_back #define mp(a, b) make_pair(a, b) int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, mx=0; cin >> n >> k; int t[n+1], maxsil[n+1]; for (int i=1; i<=n; i++) cin >> t[i]; map <int, int> m, m2; map <int, int>::iterator it; m2[INT_MAX]=0; for (int i=n; i>=1; i--) { it=m2.upper_bound(t[i]); int x=it->second+1; maxsil[i]=x; if (it!=m2.begin()) {it--; m2.erase(it);} m2[t[i]]=x; } m[0]=0; for (int i=1; i<n; i++) { it=m.lower_bound(t[i]); it--; int x=it->second+1; it++; if (it!=m.end()) m.erase(it); m[t[i]]=x; int a=t[i+1]+k; it=m.lower_bound(a); it--; //cout << maxsil[i+1] << " " << it->second << "\n"; mx=max(mx, maxsil[i+1]+it->second); } cout << mx << "\n"; return 0; }
#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...