Submission #1331792

#TimeUsernameProblemLanguageResultExecution timeMemory
1331792secondaccountmaybeKralj (COCI16_kralj)C++20
140 / 140
536 ms55220 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll n;
	cin>>n;
	vector<ll>a(n),p(n),v(n),c(n,0);
	vector<vector<ll>>g(n);
	for(ll i=0;i<n;i++)
	{
		cin>>a[i];
		a[i]--;
		c[a[i]]++;
	}
	for(ll i=0;i<n;i++)
	{
		cin>>p[i];
	}
	for(ll i=0;i<n;i++)
	{
		cin>>v[i];
		g[a[i]].push_back(v[i]);
	}
	ll s=0,d=0,f=0;
	for(ll i=0;i<n;i++)
	{
		d+=c[i]-1;
		if(d<s)
		{
			s=d;
			f=(i+1)%n;
		}
	}
	multiset<ll>k;
	ll w=0;
	for(ll i=0;i<n;i++)
	{
		ll j=(f+i)%n;
		for(ll x:g[j])
		{
			k.insert(x);
		}
		auto l=k.lower_bound(p[j]);
		if(l==k.end())
		{
			k.erase(k.begin());
		}
		else
		{
			w++;
			k.erase(l);
		}
	}
	cout<<w<<endl;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...