#pragma GCC optimize ("O3")
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define endl '\n'
#define task "task"
#define task "task"
#define prll pair<ll,ll>
#define pb push_back
#define ld long double
const ll MIN=-1e18,MAX=1e18,MOD=1e9+7;
vector<ll> f[500005];
int n,st2;
ll pos[500005];
ll val[500005];
set<ll> fuck,fuck2;
ll con(ll x){
ll temp=x%n;
if(temp==0) return n;
else return temp;
}
int main(){
// #ifndef ONLINE_JUDGE
// freopen (task".inp", "r", stdin);
// freopen (task".out", "w", stdout);
// #endif
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>pos[i];
st2=pos[i];
}
for(int i=1;i<=n;i++)
{
cin>>val[i];
}
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
f[pos[i]].push_back(x);
}
for(int i=1;i<=n;i++)
{
sort(f[i].begin(),f[i].end());
}
int st=st2;
int ed=st2;
int rem=f[st2].size()-1;
st2=con(st2+1);
while(st2!=ed)
{
rem+=f[st2].size()-1;
if(rem<0)
{
st=-1;
rem=0;
}
else if(st==-1)
{
st=st2;
}
st2=con(st2+1);
}
ed=st;
fuck.insert(val[st]);
for(auto i:f[st]) fuck2.insert(i);
ll ans=0,dem=1;
st=con(st+1);
while(st!=ed)
{
// cout<<val[st]<<" ";
if(f[st].size()!=0)
{
for(auto i:fuck)
{
auto pos=fuck2.lower_bound(i);
if(pos!=fuck2.end())
{
dem--;
ans+=1;
fuck2.erase(pos);
}
}
while(dem)
{
fuck2.erase(fuck2.begin());
dem--;
}
for(auto i:f[st])
{
fuck2.insert(i);
}
dem=0;
}
fuck.insert(val[st]);
dem++;
st=con(st+1);
}
for(auto i:fuck)
{
auto pos=fuck2.lower_bound(i);
if(pos!=fuck2.end())
{
ans+=1;
fuck2.erase(pos);
}
}
cout<<ans;
}
/*
*/
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
440 ms |
59104 KB |
Output is correct |
2 |
Correct |
388 ms |
57992 KB |
Output is correct |
3 |
Correct |
514 ms |
69432 KB |
Output is correct |
4 |
Correct |
539 ms |
70784 KB |
Output is correct |
5 |
Execution timed out |
2081 ms |
25428 KB |
Time limit exceeded |
6 |
Execution timed out |
2059 ms |
25476 KB |
Time limit exceeded |
7 |
Execution timed out |
2090 ms |
27328 KB |
Time limit exceeded |
8 |
Execution timed out |
2071 ms |
26204 KB |
Time limit exceeded |
9 |
Execution timed out |
2083 ms |
28260 KB |
Time limit exceeded |
10 |
Execution timed out |
2054 ms |
26668 KB |
Time limit exceeded |