제출 #1167081

#제출 시각아이디문제언어결과실행 시간메모리
1167081CiprianGlobal Warming (CEOI18_glo)C++20
10 / 100
2095 ms4544 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; for(int i=1; i<=n; i++){ cin>>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)); for(int i=1; i<=n; i++){ /*for(int j=i; j<=n; j++){ mx1= max(mx1, mx(a, i, j)); }*/ mx1= max(mx1, mx(a, i-1, i)); mx1= max(mx1, mx(a, i, i)); mx1= max(mx1, mx(a, max(1LL, i-2), i)); mx1= max(mx1, mx(a, max(1LL, i-3), i)); } }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...