AcWing 103. 电影
原题链接
简单
作者:
鹤唳_88
,
2024-11-28 14:51:59
,
所有人可见
,
阅读 1
//需要的区间范围很大,实际上却用不了这么多。所以我们想到可以使用离散化
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
const int N=1e6+10;
vector<int>v;
int a[N],b[N],c[N];
int find(int x){
return lower_bound(v.begin(),v.end(),x)-v.begin();
}
int sci[N];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
v.push_back(a[i]);
}
int m;
cin>>m;
for(int i=0;i<m;i++){
cin>>b[i];
v.push_back(b[i]);
}
for(int i=0;i<m;i++){
cin>>c[i];
v.push_back(c[i]);
}
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
int res=1,maxb=0,maxc=0;
for(int i=0;i<n;i++){
sci[find(a[i])]++;
}
for(int i=0;i<m;i++){
int b1=sci[find(b[i])];
int c1=sci[find(c[i])];
if(b1>maxb){
maxb=b1,res=i+1,maxc=c1;
}else if(b1==maxb&&c1>maxc){
res=i+1,maxc=c1;
}
}
cout<<res<<endl;
return 0;
}