제출 #1229733

#제출 시각아이디문제언어결과실행 시간메모리
1229733papaulo지구 온난화 (NOI13_gw)C++20
13 / 40
1095 ms117484 KiB
#include <bits/stdc++.h>
using namespace std;

int gw(int N, int *H) {
    map<int, vector<int>> mp;
    vector<int> ativo(N+2, 0);
    for(int i=0;i<N;i++) {
        auto p = mp.find(H[i]);
        if(p==mp.end()) mp.insert({H[i], vector<int>(1, i+1)});
        else p->second.push_back(i+1);
    }
    int cur=0, ans=0;
    for(auto p = mp.rbegin(); p!=mp.rend(); p++) {
        auto &v = p->second;
        for(auto i : v) {
            if(!ativo[i-1]&&!ativo[i+1]) cur++;
            else if(ativo[i-1]&&ativo[i+1]) cur--;
            ans=max(ans, cur);
            ativo[i]=1;
        }
    }
    return ans;
}

int h[1<<20];

int main() {
    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...