Submission #1218760

#TimeUsernameProblemLanguageResultExecution timeMemory
1218760muhammadali_2009Global Warming (CEOI18_glo)C++20
17 / 100
43 ms6472 KiB
#include <bits/stdc++.h> #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define endl '\n' #define ll long long #define int long long #define all(x) x.begin(), x.end() #define seea(x) for(int i = 0; i < x; i++) #define pb push_back #define vc vector using namespace std; const int INF = INT_MAX; void solve() { int n, x; cin >> n >> x; vc<int> a(n); seea(n) cin >> a[i]; vc<int> pref(n+1), suf(n+2), dp(n, INF); int ans = 1; for(int i = 1; i <= n; i++){ int j = lower_bound(all(dp), a[i-1]) - dp.begin(); dp[j] = a[i-1]; pref[i] = lower_bound(all(dp), INF) - dp.begin(); ans = max(ans, pref[i]); } dp.assign(n, INF); for(int i = n; i >= 1; i--){ suf[i] = lower_bound(all(dp), -a[i-1] + x) - dp.begin(); int ins = lower_bound(all(dp), -a[i-1]) - dp.begin(); dp[ins] = -a[i-1]; } for(int i = 1; i <= n; i++){ ans = max(ans, pref[i] + suf[i]); } cout << ans << endl; } signed main(){ fast; int t = 1; while(t--) solve(); }
#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...