TLE on 3求调
查看原帖
TLE on 3求调
738761
HappyDavid楼主2025/4/20 18:18
#include <bits/stdc++.h>
using namespace std;
int t, n, cnt;
char s[10010];
long long x, y;
int main() {
	scanf ("%d", &t);
	while (t--) {
		scanf ("%d", &n);
		printf ("? 1 %d\n", n);
		fflush (stdout);
		scanf ("%lld", &x);
		if (!x) {
			printf ("! IMPOSSIBLE\n");
			fflush (stdout);
			continue;
		}
		cnt = 0;
		for (int i = 2; i <= n; ++i) {
			if (i == n) {
				y = 0;
				goto flag;
			}
			printf ("? %d %d\n", i, n);
			fflush (stdout);
			scanf ("%lld", &y);
			if (x == y) {
				s[++cnt] = '1';
			} else {
				flag:
				s[++cnt] = '0';
				if (!y) {
					while (x--) {
						s[++cnt] = '1';
					}
					while (cnt < n) {
						s[++cnt] = '0';
					}
					break;
				}
			}
			x = y;
		}
		printf ("! %s\n", s + 1);
		fflush (stdout);
	}
	return 0;
}
2025/4/20 18:18
加载中...