玄学问题求助,玄关
查看原帖
玄学问题求助,玄关
1125291
ZMQ_Ink6556楼主2024/8/16 10:48

代码:

#include<bits/stdc++.h>
using namespace std;
int n , l , r , tmp1 , tmp2 , u , v;
int main()
{
	cin >> n;
	srand(time(0));
	l = 1;
	r = n;
	while(1)
	{
		if(l == r)
		{
			cout << "! " << l << endl;
			return 0;
		}
		tmp1 = rand() * rand() % (r - l) + l;
		tmp2 = rand() * rand() % (r - l) + l;
		if(tmp1 > tmp2)
		{
			swap(tmp1 , tmp2);
		}
		cout << "? " << tmp1 << ' ' << tmp2 << endl;
		cin >> u >> v;
		if(v == 1)
		{
			cout << "! " << u << endl;
			return 0;
		}
		else if(v == 0)
		{
			l = u + 1;
		}
		else
		{
			r = u - 1;
		}
	}
	return 0;
}

除了第一个点全部返回 your input sin't legal.,问题出在哪了?

玄关(小号)。

2024/8/16 10:48
加载中...