https://ac.nowcoder.com/acm/contest/1001/A
#include<bits/stdc++.h>
using namespace std;
#define MAXN 200005
int a[MAXN],b[MAXN],c[MAXN];
int cnt;
int num[MAXN*3];
int t[MAXN*3];
void discrete(){
sort(t+1,t+1+cnt);
cnt=unique(t+1,t+1+cnt)-(t+1);//unique函数返回第一个重复元素的迭代器
}
int query(int n){
return lower_bound(t+1,t+1+cnt,n)-(t+1)+1;//坐标从1开始
}
int main(){
int n;
cin>>n;
cnt=0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
t[++cnt]=a[i];
}
int m;
cin>>m;
for(int i=1;i<=m;i++){
scanf("%d",&b[i]);
t[++cnt]=b[i];
}
for(int i=1;i<=m;i++){
scanf("%d",&c[i]);
t[++cnt]=c[i];
}
discrete();
for(int i=1;i<=n;i++){
num[query(a[i])]++;
}
int ans=0,mx=0,mx2=0;
for(int i=1;i<=m;i++){
if(num[query(b[i])]>mx){
mx=num[query(b[i])];
mx2=num[query(c[i])];
ans=i;
}
else if(num[query(b[i])]==mx){
if(num[query(c[i])]>mx2){
mx2=num[query(c[i])];
ans=i;
}
}
}
cout<<ans;
return 0;
}