Submission #1167144

#TimeUsernameProblemLanguageResultExecution timeMemory
1167144CiprianGlobal Warming (CEOI18_glo)C++20
10 / 100
2095 ms4696 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int n, x; int mx(vector<int>a, int l, int r){ vector<int>dp; for(int i=1; i<=n; i++){ if(i>=l && i<=r){ int pos=lower_bound(dp.begin(),dp.end(), a[i]+x)-dp.begin(); if(pos==dp.size()){ dp.push_back(a[i]+x); }else{ dp[pos]=a[i]+x; } }else{ int pos=lower_bound(dp.begin(),dp.end(), a[i])-dp.begin(); if(pos==dp.size()){ dp.push_back(a[i]); }else{ dp[pos]=a[i]; } } }return dp.size(); } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>x; vector<int> a(n+1); int mx2=0, mn=1e9; for(int i=1; i<=n; i++){ cin>>a[i]; mn=min(mn, a[i]); mx2=max(mx2, a[i]); }int mx1=0; x=min(x, mx2); if(x==0){ mx1= max(mx1, mx(a, 0, 0)); } else{ mx1= max(mx1, mx(a, 0, 0)); vector<int>q; for(int i=1; i<=3*n/4; i++){ //q.push_back(mx(a, i, n)); mx1= max(mx1, mx(a, i, n)); }//for(auto e: q)cout<<e<<" "; }cout<<mx1<<endl; 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...