作业介绍

捕鱼4

#include<bits/stdc++.h>
using namespace std;

int n,m;

struct node{
	int moli, w;
}a[50005];

bool f(node x, node y){
	return x.moli < y.moli;
}

int main(){
	cin >> n >> m;
	for(int i=1; i<=n; i++) cin >> a[i].moli, a[i].w = i;
	sort(a+1, a+1+n, f);
	
	//找m个数字的位置
	while(m--){
		int x;
		cin >> x;
		//找到x的位置
		int l=1, r=n;  //设置左右边界
		int flag=0;
		while(l<=r){
			int m=(l+r)/2;
			if(a[m].moli == x){  //找到x了
				flag = 1;
				cout << a[m].w << endl;
				break;
			}
			//中间值大于x
			else if(a[m].moli > x) r=m-1;
			//中间值小于x
			else l=m+1;
		}
		if(flag==0) cout << "NO FIND\n";
	}

	return 0;
}
状态
已结束
题目
5
开始时间
2024-2-29 0:00
截止时间
2024-3-7 23:59
可延期
24 小时