蒟蒻20分求助
查看原帖
蒟蒻20分求助
1081652
QBZ951_wc楼主2024/8/8 17:03

rt

#include <iostream>
#include <cstring>
#include <algorithm>
#define int long long
using namespace std;

int n,m;

struct A{
    int s,id;
}a[100008],b[100008];

bool cmp(A x,A y){
    if(x.s!=y.s) return x.s<y.s;
    return x.id<y.id;
}

bool ch(int x){
    int l=0,r=n+1,m;
    while(l+1!=r){
        m=(l+r)>>1;
        if(a[m].s>x){
            r=m;
        }
        else if(a[m].s<x){
            l=m;
        }
        else if(a[m].s==x)
            return 1;
    }
    return 0;
}

signed main(){
    scanf("%lld%lld",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%lld",&b[i].s);
        b[i].id=i;
    }
    for(int i=1;i<=m;i++){
        scanf("%lld",&a[i].s);
        a[i].id=i;
    }
    sort(b+1,b+n+1,cmp);
    sort(a+1,a+m+1,cmp);
    for(int i=1;i<=n;i++){
        if(ch(b[i].s))
            cout<<i<<" ";
    }
    return 0;
}
2024/8/8 17:03
加载中...