Submission #1243181

#TimeUsernameProblemLanguageResultExecution timeMemory
1243181datluong_04Global Warming (CEOI18_glo)C++20
38 / 100
2095 ms3400 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define FOR(i , a , b) for(int i = a ; i <= b ; i++) #define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define maxn 200005 ll a[maxn] , diff[maxn] , b[maxn]; int main(){ FAST; int n; ll x; cin >> n >> x; FOR(i , 1 , n) cin >> a[i]; if(x == 0){ FOR(i , 1 , n) b[i] = INT_MAX; int ans = 0; FOR(i , 1 , n){ int k = lower_bound(b + 1 , b + n + 1, a[i]) - b; b[k] = a[i]; ans = max(ans , k); } cout << ans; return 0; } diff[1] = a[1]; FOR(i , 2 , n) diff[i] = a[i] - a[i - 1]; FOR(i , 1 , n) b[i] = INT_MAX; diff[1] = diff[1] + -x; int res = 0; FOR(i , 2 , n){ diff[i] -= -x; ll ans = 0; FOR(j , 1 , n){ ans += diff[j]; a[j] = ans; } //FOR(j , 1 , n) cout << a[j] << " "; //cout << "\n"; FOR(j , 1 , n){ int k = lower_bound(b + 1 , b + n + 1, a[j]) - b; b[k] = a[j]; res = max(res , k); } FOR(j , 1 , n) b[j] = INT_MAX; //cout << res << "\n"; diff[i] -= x; } cout << res; }
#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...