解析:
简单排序
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1000;
int a[N],b[N],x;
int n,m;
struct node
{
int pos,cnta,cntb;
bool operator < (const node & W) const{
if(cnta==W.cnta) return cntb>W.cntb;
return cnta>W.cnta;
}
}res[N];
unordered_map<int,int> v;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
v[x]++;
}
scanf("%d",&m);
for(int i=1;i<=m;i++) scanf("%d",&a[i]);
for(int i=1;i<=m;i++) scanf("%d",&b[i]);
for(int i=1;i<=m;i++)
{
res[i].pos=i;
res[i].cnta+=v[a[i]];
res[i].cntb+=v[b[i]];
}
sort(res+1,res+1+m);
printf("%d\n",res[1].pos);
}