满酱紫
查看原帖
满酱紫
998662
xk2013楼主2024/3/17 13:47
#include <cstdio>

int n, m, q, *a;

int find(int n);

int main(void)
{
	scanf("%d %d", &n, &m);
	a = new int[n + 1];
	
	for (int i = 1; i <= n; i++)
	{
		scanf("%d", &a[i]);
	}
			
	for (int i = 0; i < m; i++)
	{
		scanf("%d", &q);
		printf("%d ", find(q));
	}
	
	return 0;
}

int find(int n)
{
	int l = 1, r = n;
	
	while (l <= r)
	{
		int mid = (l + r) / 2;
		
		if (a[mid] == n)
		{
			return mid;
		}
		
		if (a[mid] < n)
		{
			l = mid + 1;
		}
		else if (a[mid] > n)
		{
			r = mid - 1;
		}
	}
	
	return -1;
}

洋历克果(样例可过)。

2024/3/17 13:47
加载中...