电影 acw103

题意就是给你科学家的语言和电影的语言和字幕的编号

可以用STL做,但是锻炼一下离散化吧

#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
using namespace std;
const int N=1e6+10;
int a[N],b[N],c[N],va[N],vb[N],vc[N],s[N];
vector<int> v;
int get(int x)
{
    return lower_bound(v.begin(),v.end(),x)-v.begin()+1;
}
int main(){
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
        v.push_back(a[i]);
    }
    int m;
    scanf("%d",&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d",&b[i]);
        v.push_back(b[i]);
    }
    for(int i=1;i<=m;i++)
    {
        scanf("%d",&c[i]);
        v.push_back(c[i]);
    }
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
    for(int i=1;i<=n;i++) va[i]=get(a[i]),s[va[i]]++;
    int maxn1=-1,maxn2=-1,ans=0;
    for(int i=1;i<=m;i++)
    {
        int x=get(b[i]);
        int y=get(c[i]);
        if(s[x]>maxn1)
        {
            maxn1=s[x],maxn2=s[y];
            ans=i;
        }
        else
        {
            if(s[x]==maxn1&&s[y]>maxn2)
            {
                maxn1=s[x],maxn2=s[y];
                ans=i;
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}

 

posted @ 2022-06-10 13:32  小志61314  阅读(43)  评论(0)    收藏  举报