solve(?)
可以把所有出现的语言都统计一遍之后处理
我们看到数据范围高达\(10^9\),因此必须采用离散化来搞一下要不然吃不消
搞完之后就统计暴力搜然后比较就行了
然后就没有然后了
Code
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int n,m;
int tot;
int can[maxn],py[maxn],zm[maxn];// 听得懂,配音,字幕
int sum[maxn*10],num[maxn*10];
int cnt[maxn*10];
int ans=1,ans1,ans2;
int t;
int query(int x)
{
return lower_bound(sum+1,sum+1+t,x)-sum;
}
int main()
{
// freopen("test16.in","r",stdin);
cin >> n;
for (int i=1;i<=n;i++)
{
cin >> can[i];
sum[++tot]=can[i];
}
cin >> m;
for (int i=1;i<=m;i++)
{
cin >> py[i];
sum[++tot]=py[i];
}
for (int i=1;i<=m;i++)
{
cin >> zm[i];
sum[++tot]=zm[i];
}
sort(sum+1,sum+1+tot);
t=unique(sum+1,sum+1+tot)-sum-1;
for (int i=1;i<=n;i++) cnt[query(can[i])]++;// 计数
for (int i=1;i<=m;i++)
{
int u=cnt[query(py[i])];
int v=cnt[query(zm[i])];
if (u>ans1||(u == ans1&&v>ans2))// 优先更新py
{
ans=i;
ans1=u;
ans2=v;
}
}
cout << ans << endl;
return 0;
}
密码德我也不知道为什么之前开1e7才能过
然后爆了这个
