AcWing 103. 电影
原题链接
简单
作者:
đł_0
,
2025-04-04 20:55:10
· 广东
,
所有人可见
,
阅读 2
参考文献 榜一大哥的题解
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+50;
int n,m,a[N],b[N],c[N];
int ans[3*N];
int ans1=-1,ans2=-1;
int id;
vector<int> unq;
int find(int x) {
return lower_bound(unq.begin(),unq.end(),x) - unq.begin();
}
int main() {
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> a[i];
unq.push_back(a[i]);
}
cin >> m;
for(int i = 1; i <= m; i++) {
cin >> b[i];
unq.push_back(b[i]);
}
for(int i = 1; i <= m; i++) {
cin >> c[i];
unq.push_back(c[i]);
}
sort(unq.begin(),unq.end());
unq.erase(unique(unq.begin(),unq.end()),unq.end());
for(int i = 1; i <= n; i++)
{
ans[find(a[i])]++;
}
for(int i = 1; i <= m; i++)
{
int t1 = ans[find(b[i])], t2 = ans[find(c[i])];
if(t1 > ans1 || t1==ans1 && t2> ans2) {
ans1 = t1;
ans2 = t2;
id = i;
}
}
cout << id;
}