제출 #1160600

#제출 시각아이디문제언어결과실행 시간메모리
1160600mertbbmMoney (IZhO17_money)C++20
100 / 100
1010 ms55300 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld long double #define show(x,y) cout << y << " " << #x << endl; #define show2(x,y,i,j) cout << y << " " << #x << " " << j << " " << #i << endl; #define show3(x,y,i,j,p,q) cout << y << " " << #x << " " << j << " " << #i << " " << q << " " << #p << endl; #define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl; typedef pair<int,int>pii; typedef pair<pii,int>pi2; mt19937_64 rng(chrono::system_clock::now().time_since_epoch().count()); void solve(){ int n; cin >> n; int arr[n]; multiset<int>se; for(int x=0;x<n;x++){ cin >> arr[x]; se.insert(arr[x]); } int counter=0; int ptr=n-1; while(ptr>=0){ counter++; int hold=arr[ptr]; while(arr[ptr]==hold){ se.erase(se.find(arr[ptr])); ptr--; } auto it=se.lower_bound(hold); if(it==se.begin()) continue; it--; vector<int>v; while(ptr>=0&&arr[ptr]==*it){ v.push_back(arr[ptr]); ptr--; if(it==se.begin()) break; it--; } for(auto it:v) se.erase(se.find(it)); } cout << counter; } int32_t main(){ ios::sync_with_stdio(0); cin.tie(0); //freopen("in.txt","r",stdin); //freopen("in.txt","w",stdout); int t=1; //cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...