20分求救!!!玄关!!!
查看原帖
20分求救!!!玄关!!!
471331
Harley_Wu楼主2023/7/13 08:41
#include<bits/stdc++.h>
using namespace std;
int n,m,q,ans[100010];
struct wx
{
    int num,id;
} a[100010];
bool cmp(wx x,wx y)
{
	return x.num<y.num;
}
bool cmp2(wx x,wx y)
{
	return x.id<y.id;
}
int find_(int x)
{
    int l=1,r=n;
    while(l<=r)
    {
        int mid=(l+r)/2;
        if(a[mid].num==x) return a[mid].num;
        else if(a[mid].num>x) r=mid-1;
        else l=mid+1;
    }
    return 0;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].num;
        a[i].id=i;
    }
    //cin>>m;
    sort(a+1,a+n+1,cmp);
    int j=0;
    for(int i=0;i<m;i++)
    {
        cin>>q;
        if(find_(q)==0) continue;
        else ans[j]=find_(q),j++;
    }
    sort(ans,ans+j);
    for(int i=0;i<j;i++) cout<<ans[i]<<" ";
    return 0;
}
2023/7/13 08:41
加载中...