제출 #766681

#제출 시각아이디문제언어결과실행 시간메모리
766681TrunktyMoney (IZhO17_money)C++14
100 / 100
1379 ms62028 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define int ll

int n,ans;
int arr[1000005];
multiset<int> s;

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> arr[i];
        s.insert(arr[i]);
    }
    int curr=n;
    while(curr>0){
        int bef = curr;
        ans++;
        while(arr[curr]==arr[curr-1]){
            curr--;
        }
        curr--;
        if(curr==0){
            break;
        }
        auto it = s.lower_bound(arr[curr+1]);
        it--;
        while((*it)==arr[curr]){
            curr--;
            if(it==s.begin()){
                break;
            }
            it--;
        }
        for(int i=curr+1;i<=bef;i++){
            s.erase(s.find(arr[i]));
        }
    }
    cout << ans << "\n";
    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...