제출 #386267

#제출 시각아이디문제언어결과실행 시간메모리
386267kshitij_sodaniKralj (COCI16_kralj)C++14
84 / 140
2079 ms26604 KiB
//#pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> using namespace std; typedef long long llo; #define mp make_pair #define pb push_back #define a first #define b second #define endl '\n' int n; int aa[500001]; int bb[500001]; int ind[500001]; int co[500001]; vector<int> ss[500001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n; for(int i=0;i<n;i++){ cin>>ind[i]; ind[i]--; co[ind[i]]++; } for(int i=0;i<n;i++){ cin>>aa[i]; } for(int i=0;i<n;i++){ cin>>bb[i]; } for(int i=0;i<n;i++){ ss[ind[i]].pb(bb[i]); } for(int i=1;i<n;i++){ co[i]+=co[i-1]; } pair<int,int> mi={n+1,-1}; for(int i=0;i<n;i++){ co[i]-=(i+1); mi=min(mi,{co[i],i}); } int xx=(mi.b+1%n); set<int> cur; int ans=0; for(int i=0;i<n;i++){ for(auto j:ss[xx]){ cur.insert(j); } auto k=cur.upper_bound(aa[xx]); if(k!=cur.end()){ ans++; cur.erase(k); } else{ cur.erase(cur.begin()); } xx=(xx+1); if(xx==n){ xx=0; } } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...