A C \color{green}AC AC 代码
编译选项(不开 C E \color{orange}CE CE )
‐ O 2 ‐ s t d = c + + 20 \color{gray}‐O2\ ‐std=c++20 ‐O2 ‐std=c++20
c o d e code code
#include<bits/stdc++.h>
using namespace std;
const int 数组定义最大数量=1e5+5;
int 科技创新奖[数组定义最大数量];
int 特殊贡献奖[数组定义最大数量];
int 二分查找(int 数组[],int 左侧,int 右侧,int 数字) {
int 中间下标,答案=-1;
while(左侧<=右侧) {
中间下标=(左侧+右侧)/2;
if(数组[中间下标]==数字) {
答案=中间下标;
break;
}
else if(数组[中间下标]<数字) {
左侧=中间下标+1;
}
else {
右侧=中间下标-1;
}
}
return 答案;
}
int main() {
int 科技创新奖获奖人数;
int 特殊贡献奖获奖人数;
cin>>科技创新奖获奖人数>>特殊贡献奖获奖人数;
for(int 迭代器=1;迭代器<=科技创新奖获奖人数;迭代器++) {
cin>>科技创新奖[迭代器];
}
for(int 迭代器=1;迭代器<=特殊贡献奖获奖人数;迭代器++) {
cin>>特殊贡献奖[迭代器];
}
sort(特殊贡献奖+1,特殊贡献奖+特殊贡献奖获奖人数+1);
for(int 迭代器=1;迭代器<=科技创新奖获奖人数;迭代器++) {
if(二分查找(特殊贡献奖,1,特殊贡献奖获奖人数,科技创新奖[迭代器])!=-1) {
cout<<科技创新奖[迭代器]<<" ";
}
}
return 0;
}