Submission #1229738

#TimeUsernameProblemLanguageResultExecution timeMemory
1229738papauloGlobal Warming (NOI13_gw)C++20
40 / 40
163 ms16560 KiB
#include <bits/stdc++.h>
using namespace std;

int gw(int N, int *H) {
    vector<pair<int, int>> v;
    vector<int> ativo(N+2, 0);
    for(int i=0;i<N;i++) {
        v.push_back({H[i], i+1});
    }
    int cur=0, ans=0;
    sort(v.rbegin(), v.rend());
    int last=2e9;
    for(auto pr : v) {
        int curv=pr.first, i=pr.second;
        if(curv!=last) {
            last=curv;
            ans=max(ans, cur);
        }
        if(!ativo[i-1]&&!ativo[i+1]) cur++;
        else if(ativo[i-1]&&ativo[i+1]) cur--;
        ativo[i]=1;
    }
    ans=max(ans, cur);
    return ans;
}

int h[1<<20];

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    int n;
    cin >> n;
    for(int i=0;i<n;i++) cin >> h[i];
    cout << gw(n, h) << endl;
}
#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...