제출 #491072

#제출 시각아이디문제언어결과실행 시간메모리
491072rainboyTenis (COI19_tenis)C11
51 / 100
1078 ms4884 KiB
#include <stdio.h>
#include <string.h>

#define N	100000

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

int aa[N], xx[N], yy[N], zz[N], n; char win[N];

void solve() {
	int i, y, z;

	memset(win, 0, n * sizeof *win);
	y = z = -1;
	for (i = 0; i < n; i++) {
		win[aa[i]] = 1;
		y = max(y, yy[aa[i]]);
		z = max(z, zz[aa[i]]);
		if (y == i && z == i)
			break;
	}
}

int main() {
	int q, i, j, a, b;

	scanf("%d%d", &n, &q);
	for (i = 0; i < n; i++) {
		scanf("%d", &aa[i]), aa[i]--;
		xx[aa[i]] = i;
	}
	for (i = 0; i < n; i++) {
		scanf("%d", &a), a--;
		yy[a] = i;
	}
	for (i = 0; i < n; i++) {
		scanf("%d", &a), a--;
		zz[a] = i;
	}
	solve();
	while (q--) {
		int t;

		scanf("%d", &t);
		if (t == 1) {
			scanf("%d", &a), a--;
			printf(win[a] ? "DA\n" : "NE\n");
		} else {
			int tmp;

			scanf("%d%d%d", &t, &a, &b), a--, b--;
			if (t == 1) {
				i = xx[a], j = xx[b];
				tmp = aa[i], aa[i] = aa[j], aa[j] = tmp;
				xx[a] = j, xx[b] = i;
			} else if (t == 2)
				tmp = yy[a], yy[a] = yy[b], yy[b] = tmp;
			else
				tmp = zz[a], zz[a] = zz[b], zz[b] = tmp;
			solve();
		}
	}
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

tenis.c: In function 'main':
tenis.c:27:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |  scanf("%d%d", &n, &q);
      |  ^~~~~~~~~~~~~~~~~~~~~
tenis.c:29:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |   scanf("%d", &aa[i]), aa[i]--;
      |   ^~~~~~~~~~~~~~~~~~~
tenis.c:33:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |   scanf("%d", &a), a--;
      |   ^~~~~~~~~~~~~~~
tenis.c:37:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |   scanf("%d", &a), a--;
      |   ^~~~~~~~~~~~~~~
tenis.c:44:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   44 |   scanf("%d", &t);
      |   ^~~~~~~~~~~~~~~
tenis.c:46:4: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 |    scanf("%d", &a), a--;
      |    ^~~~~~~~~~~~~~~
tenis.c:51:4: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |    scanf("%d%d%d", &t, &a, &b), a--, b--;
      |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...