社区讨论

10分求助 悬赏1关注

P1571眼红的Medusa参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo254o7o
此快照首次捕获于
2023/10/23 08:09
2 年前
此快照最后确认于
2023/11/03 08:27
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n,m,a[N],b[N];
int find(int x){
	int lt = 0,rt = m + 1;
	while(lt + 1 < rt){
		int mid = (lt + rt) / 2;
		if(b[mid] == a[x]){
			return 1;
		}
		if(b[mid - 1] < a[x] && b[mid + 1] > a[x]){
			return 0;
		}
		if(b[mid]  > a[x]){
			rt = mid;//往mid左边找
		}else{
			lt = mid + 1;//往mid右边找
		}
	}
	return 0;
}
int main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i++){
		cin >> a[i];
	}
	for(int i = 1;i <= m;i++){
		cin >> b[i];
	}
	sort(b + 1,b + 1 + m);//有特殊贡献奖的人的编号排序!!!
	for(int i = 1;i <= n;i++){
		if(find(i) == true){
			cout << a[i] << " ";
		}
	}
	return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...