Submission #1211614

#TimeUsernameProblemLanguageResultExecution timeMemory
1211614alwaus424Global Warming (CEOI18_glo)C++20
10 / 100
2096 ms1864 KiB
#include <bits/stdc++.h>
using namespace std;

int lis(vector<int> const& a) {
    int n = a.size();
    const int INF = 1e9;
    vector<int> d(n + 1, INF);
    d[0] = -INF;

    for (int i = 0; i < n; i++) {
        // Use lower_bound for non-decreasing LIS
        int l = upper_bound(d.begin(), d.end(), a[i]) - d.begin();
        if (d[l - 1] < a[i] && a[i] < d[l])
            d[l] = a[i];
    }

    int ans = 0;
    for (int l = 0; l <= n; l++) {
        if (d[l] < INF)
            ans = l;
    }
    return ans;
}

int main() {
    int n,x;
    cin >> n>>x;
    vector<int> v(n);
   
    for (int i = 0; i < n; i++)    cin >> v[i];
    int mx = 0;
    for (int i = 0; i < x; i++){
        for(int j=0;j<n;j++) {
            v[j]-=i;
            mx = max(mx,lis(v));
        }
        mx = max(mx,lis(v));
    }
                mx = max(mx,lis(v));
    cout << mx << 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...