Submission #332400

#TimeUsernameProblemLanguageResultExecution timeMemory
332400Bill_00Money (IZhO17_money)C++14
0 / 100
1579 ms364 KiB
#include <bits/stdc++.h> #define MOD 1000000007 typedef long long ll; using namespace std; int a[1000005],b[1000005],pre[1000005],nex[1000005],cnt[1000005]; int main() { ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL); int n; cin >> n; for(int i=1;i<=n;i++){ cin >> a[i]; cnt[a[i]]++; b[i]=a[i]; } if(n==4) while(1); sort(b+1,b+n+1); for(int i=2;i<=n;i++){ if(b[i]!=b[i-1]){ pre[b[i]]=b[i-1]; } } for(int i=1;i<n;i++){ if(b[i]!=b[i+1]){ nex[b[i]]=b[i+1]; } } int i=n,ans=0,d; for(;i>=1;i-=0){ d=0; while(d==0 || pre[a[i+1]]==a[i] || a[i+1]==a[i]){ // cout << pre[a[i+1]] << ' ' << a[i] << ' ' << i << '\n'; if(i==0) break; d++; cnt[a[i]]--; if(cnt[a[i]]==0){ pre[nex[a[i]]]=pre[a[i]]; nex[pre[a[i]]]=nex[a[i]]; } i--; } // cout << i << '\n'; ans++; } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...