20分 求助大佬!!!
查看原帖
20分 求助大佬!!!
703559
Zhyzhy123楼主2023/3/23 22:42
#include<iostream>
#include<algorithm>
using namespace std;
bool check(int mid, int prize2[], int k){
    if(prize2[mid] >= k)
        return true;
    else
        return false;
}
int bsearch_l(int l, int r, int prize2[], int k){
    while(l < r){
        int mid = (l + r) / 2;
        if(check(mid, prize2, k))
            r = mid;
        else
            l = mid + 1;
    }
    return l;
}
int main()
{
    int n, m;
    cin >> n >> m;
    int prize1[n + 10], prize2[m + 10];
    for(int i = 0; i < n; i ++){
        cin >> prize1[i];
    }
    for(int i = 0; i < m; i ++){
        cin >> prize2[i];
    }   
    sort(prize1, prize1 + n);
    sort(prize2, prize2 + m);
    for(int i = 0; i < n; i ++){
        if(prize1[i] == prize2[bsearch_l(0, m - 1, prize2, prize1[i])])
            printf("%d ",prize1[i]);
    }
}
2023/3/23 22:42
加载中...