제출 #1243176

#제출 시각아이디문제언어결과실행 시간메모리
1243176datluong_04Global Warming (CEOI18_glo)C++20
28 / 100
2095 ms4936 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define FOR(i , a , b) for(int i = a ; i <= b ; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define maxn 200005

ll a[maxn] , diff[maxn] , b[maxn];

int main(){
    FAST;
    int n;
    ll x;
    cin >> n >> x;
    FOR(i , 1 , n) cin >> a[i];
    diff[1] = a[1];
    FOR(i , 2 , n) diff[i] = a[i] - a[i - 1];

    FOR(i , 1 , n) b[i] = INT_MAX;
    diff[1] = diff[1] + -x;

    int res = 0;
    FOR(i , 2 , n){
        diff[i] -= -x;
        ll ans = 0;
        FOR(j , 1 , n){
            ans += diff[j];
            a[j] = ans;
        }
        //FOR(j , 1 , n) cout << a[j] << " ";
        //cout << "\n";
        FOR(j , 1 , n){
            int k = lower_bound(b + 1 , b + n + 1, a[j]) - b;
            b[k] = a[j];
            res = max(res , k);
        }
        FOR(j , 1 , n) b[j] = INT_MAX;
        //cout << res << "\n";
        diff[i] -= x;
    }

    cout << res;
}
#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...