Submission #766681

#TimeUsernameProblemLanguageResultExecution timeMemory
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...