Submission #491145

#TimeUsernameProblemLanguageResultExecution timeMemory
491145rainboyZagrade (COI20_zagrade)C11
100 / 100
1010 ms828 KiB
#include <stdio.h>

#define N	100000

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() {
	static int qu[N];
	static char cc[N + 1];
	int n, h, i, cnt;

	scanf("%d%*d", &n);
	cnt = 0;
	for (i = 0; i < n; i++)
		if (cnt == 0 || !query(qu[cnt - 1], i))
			qu[cnt++] = i;
		else
			cc[qu[--cnt]] = '(', cc[i] = ')';
	for (h = 0; h < cnt; h++)
		cc[qu[h]] = h * 2 < cnt ? ')' : '(';
	printf("! %s\n", cc), fflush(stdout);
	return 0;
}

Compilation message (stderr)

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