Submission #780992

#TimeUsernameProblemLanguageResultExecution timeMemory
780992rainboyMađioničar (COI22_madionicar)C11
100 / 100
1580 ms276 KiB
#include <stdio.h>

int max(int a, int b) { return a > b ? a : b; }

int query(int i, int j) {
	int x;

	printf("? %d %d\n", i + 1, j + 1), fflush(stdout);
	scanf("%d", &x);
	return x;
}

int main() {
	int n, t, i, l, l_;

	scanf("%d", &n);
	l_ = 0;
	for (t = 0; t <= 1; t++) {
		for (i = 0, l = t; i < n; i++)
			while (i > 0 && i + l < n && query(i - 1, i + l))
				i--, l += 2;
		l_ = max(l_, l);
	}
	printf("! %d\n", l_), fflush(stdout);
	return 0;
}

Compilation message (stderr)

Main.c: In function 'query':
Main.c:9:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |  scanf("%d", &x);
      |  ^~~~~~~~~~~~~~~
Main.c: In function 'main':
Main.c:16:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |  scanf("%d", &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...