社区讨论

dalao帮忙看看,第一个wa,最后一个tle了(悲)

P2249【深基13.例1】查找参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lo2tqns1
此快照首次捕获于
2023/10/23 19:38
2 年前
此快照最后确认于
2023/10/23 19:38
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000001;
int nums[MAXN];
int find(int x, int n) {
	int left = 1;
	int right = n;
	while (left <= right) {
		int mid = left + (right - left) / 2;
		if (nums[mid] < x) 
			left = mid + 1;
		else if (nums[mid] > x)
			right = mid - 1;
		else {
			while (nums[mid] == x)	mid--;
			return mid + 1;
		}
	}
	return -1;
}
int main() {
	int n, m;
	int x;
	cin >> n >> m;
	for (int i = 1; i <= n; i ++) {
		cin >> nums[i];
	}
	for (int i = 1; i <= m; i ++) {
		cin >> x;
		cout << find(x, n) << " ";
	}
	return 0;
} 

回复

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

正在加载回复...