제출 #699858

#제출 시각아이디문제언어결과실행 시간메모리
699858Iliya_Global Warming (CEOI18_glo)C++14
25 / 100
54 ms5620 KiB
// IN THE NAME OF GOD #include<bits/stdc++.h> //#pragma GCC optimize ("O2,unroll-loops,O3,Ofast,no-stack-protector,fast-math") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native") #define endl '\n'; #define file_reading freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); using namespace std; typedef long long ll; typedef long double dll; typedef unsigned long long ull; const ll B = 2e5+7, inf = 1e18; ll arr[B],arr2[B]; ll n,x; ll ans_(){ vector<ll> dp(n+1,inf); dp[0] = -inf; dp[1] = arr[1]; ll ans = 1; for(ll i=2; i<=n; i++){ ll ind = lower_bound(dp.begin(),dp.end(),arr[i])-dp.begin(); dp[ind] = arr[i]; ans = max(ans,ind); } return ans; } void sub2_3(){ ll ans = 1; for(ll i=1; i<=n; i++){ for(ll j=i; j<=n; j++){ for(ll change = -x; change <= x; change++){ arr[j] = arr2[j]; arr[j]+=change; ans = max(ans,ans_()); } } for(ll k=i; k<=n; k++){arr[k] = arr2[k];} } cout << ans << endl; } void solve(){ cin >> n >> x; for(ll i=1; i<=n; i++){cin >> arr[i]; arr2[i] = arr[i];} if (x == 0){cout << ans_() << endl; return;} if (n <= 50 && x <= 50){sub2_3(); return;} cout << 0 << endl; } int32_t main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; t=1; while(t--){solve();} 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...