Submission #971879

#TimeUsernameProblemLanguageResultExecution timeMemory
971879jadai007Global Warming (CEOI18_glo)C++17
10 / 100
2063 ms1628 KiB
#include<bits/stdc++.h> using namespace std; int n,x, arr[200200], p, dp[200200], ans; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> x; for(int i = 0; i<n; ++i) cin >> arr[i]; if(x == 0){ for(int i = 0; i<n; ++i){ int idx = lower_bound(dp, dp+p, arr[i]) - dp; if(idx == p) ++p; dp[idx] = arr[i]; } cout << p; return 0; } for(int d = -x; d<=x; ++d){ for(int i = 0; i<n; ++i){ for(int j = i+1; j<n; ++j){ int a = arr[i]; int b = arr[j]; arr[i]+=d; arr[j]+=d; memset(dp, 0, sizeof(dp)); p = 0; for(int k = 0; k<n; ++k){ int idx = lower_bound(dp, dp+p, arr[k]) - dp; if(idx == p) p++; dp[idx] = arr[k]; } ans = max(ans, p); arr[i] = a, arr[j] = b; } } } cout << ans; }
#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...