Submission #810205

#TimeUsernameProblemLanguageResultExecution timeMemory
810205ymmColors (BOI20_colors)C++17
0 / 100
1 ms300 KiB
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

set<ll> S;
bool query(ll x)
{
	assert(!S.count(x));
	S.insert(x);
	int d;
	printf("? %lld\n", x+1);
	fflush(stdout);
	scanf("%d", &d);
	return d;
}


int main()
{
	ll n;
	scanf("%lld", &n);
	ll pos = n/4;
	query(pos);
	ll l = 1, r = n;
	while (l < r) {
		ll m0 = (l+r)/2;
		ll x = pos < n/2? 1: -1;
		ll m;
		for (ll i = 0;; ++i) {
			ll dard = i%2? i/2+1: -i/2;
			if (S.count(pos + x*(m0+dard)))
				continue;
			m = m0+dard;
			break;
		}
		if (query(pos = pos + x*m))
			r = m;
		else
			l = m+1;
	}
	printf("= %lld\n", l);
}

Compilation message (stderr)

Colors.cpp: In function 'bool query(ll)':
Colors.cpp:13:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |  scanf("%d", &d);
      |  ~~~~~^~~~~~~~~~
Colors.cpp: In function 'int main()':
Colors.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |  scanf("%lld", &n);
      |  ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...