제출 #971889

#제출 시각아이디문제언어결과실행 시간메모리
971889jadai007Global Warming (CEOI18_glo)C++17
15 / 100
2064 ms3420 KiB
#include<bits/stdc++.h>
#define int long long

using namespace std;

int n,x, arr[200200], p, dp[200200], ans;

signed 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; j<n; ++j){
                memset(dp, 0, sizeof(dp)); p = 0;
                for(int k = 0; k<n; ++k){
                    int a = arr[k];
                    if(k <= j && k >= i) a+=d;
                    int idx = lower_bound(dp, dp+p, a) - dp;
                    if(idx == p) p++;
                    dp[idx] = a;
                }
                ans = max(ans, p);
            }
        }
    }
    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...