满江红求调,感谢
查看原帖
满江红求调,感谢
1100140
Ryoo楼主2024/10/20 11:14
#include <bits/stdc++.h>
using namespace std;
int a[10000005], ans[100005];
char c[15];
int n,m;
int read() {
	char chr;
	int s = 0, w = 1;
	chr = getchar();
	if(chr == '-') {w = -1;chr = getchar();}
	while(chr >= '0' && chr <= '9') {
		s = s*10 + (chr-'0');
		chr = getchar();
	}
	return s*w;
}
void write(int x) {
	int len = 0, k1 = x;
	if(k1 < 0) {
		putchar('-');k1 = -k1;
	}
	while(k1) c[len++] = k1%10+'0',k1/=10;
	while(len--) putchar(c[len]);
}
int search(int x) {
	int l = 1, r = n,mid = (l+r)/2;
	while(l < r) {
		if(a[mid] >= x) {r = mid;mid = (l+r)/2;}
		else if(a[mid] < x) {l = mid + 1;mid = (l+r)/2;}
		
	}
	if(a[l] == x) return l;
	else return -1;
}
int main() {
	
	n = read();m = read();
	for(int i = 1; i <= n; i++) a[i] = read();
	for(int i = 1; i <= m; i++) {
		int b;
		b = read();
		ans[i] = search(b);
	}
	for(int i = 1; i <= m; i++) printf("%d ", ans[i]);
	return 0;
	
}

2024/10/20 11:14
加载中...