Submission #491072

#TimeUsernameProblemLanguageResultExecution timeMemory
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; }

Compilation message (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...