#include<bits/stdc++.h>
using namespace std;
int n,mod=1e8-3;
int a[100001],b[100001],p[100001],z[100001],aa[100001];
struct match{
int s,d;
}m[100001];
struct matchh{
int ss,dd;
}mm[100001];
int cmp(match l,match ll){
return l.d<=ll.d;
}
int cmpp(matchh l,matchh ll){
return l.dd<=ll.dd;
}
int cmppp(int l,int ll){
return p[l]>=p[ll];
}
int lowbit(int o){
return o&(-o);
}
void change(int x,int zz){
while(x<=n){
z[x]+=zz;
x+=lowbit(x);
}
}
int ask(int w){
long long ans=0;
while(w>=1){
ans+=z[w];
w-=lowbit(w);
}
return ans;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>m[i].d;
m[i].s=i;
}
for(int i=1;i<=n;i++){
cin>>mm[i].dd;
mm[i].ss=i;
}
stable_sort(m+1,m+n+1,cmp);
stable_sort(mm+1,mm+n+1,cmpp);
for(int i=1;i<=n;i++){
a[m[i].s]=i;
b[mm[i].ss]=i;
}
for(int i=1;i<=n;i++){
p[a[i]]=b[i];
aa[i]=i;
}
stable_sort(aa+1,aa+n+1,cmppp);
long long aans=0;
for(int i=1;i<=n;i++){
change(aa[i],1);
aans+=ask(aa[i]-1);
aans%=mod;
}
cout<<aans;
return 0;
}
只过了第一个点