Submission #144266

#TimeUsernameProblemLanguageResultExecution timeMemory
144266SamAndTenis (COI19_tenis)C++17
51 / 100
1056 ms6008 KiB
#include <bits/stdc++.h> using namespace std; const int N = 100005; struct ban { int x, y, z; }; int n, q; ban a[N], b[N]; bool cx[N], cy[N], cz[N]; bool c[N]; int stg(int x) { int ans = 0; if (cx[x]) ++ans; if (cy[x]) ++ans; if (cz[x]) ++ans; return ans; } void bil() { memset(c, false, sizeof c); memset(cx, false, sizeof cx); memset(cy, false, sizeof cy); memset(cz, false, sizeof cz); int q = 0; int j = n + 1; for (int i = n; i > 1; --i) { cx[a[i].x] = true; if (stg(a[i].x) == 1) ++q; else if (stg(a[i].x) == 3) --q; cy[a[i].y] = true; if (stg(a[i].y) == 1) ++q; else if (stg(a[i].y) == 3) --q; cz[a[i].z] = true; if (stg(a[i].z) == 1) ++q; else if (stg(a[i].z) == 3) --q; if (q == 0) { j = i; } } for (int i = j; i <= n; ++i) { c[a[i].x] = true; } } int main() { scanf("%d%d", &n, &q); for (int i = 1; i <= n; ++i) { scanf("%d", &a[i].x); b[a[i].x].x = i; } for (int i = 1; i <= n; ++i) { scanf("%d", &a[i].y); b[a[i].y].y = i; } for (int i = 1; i <= n; ++i) { scanf("%d", &a[i].z); b[a[i].z].z = i; } bil(); while (q--) { int ty; scanf("%d", &ty); if (ty == 1) { int x; scanf("%d", &x); if (c[x] == false) printf("DA\n"); else printf("NE\n"); } else { int p, x, y; scanf("%d%d%d", &p, &x, &y); if (p == 1) { swap(a[b[x].x].x, a[b[y].x].x); swap(b[x].x, b[y].x); } else if (p == 2) { swap(a[b[x].y].y, a[b[y].y].y); swap(b[x].y, b[y].y); } else { swap(a[b[x].z].z, a[b[y].z].z); swap(b[x].z, b[y].z); } bil(); } } return 0; }

Compilation message (stderr)

tenis.cpp: In function 'int main()':
tenis.cpp:65:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &q);
     ~~~~~^~~~~~~~~~~~~~~~
tenis.cpp:68:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i].x);
         ~~~~~^~~~~~~~~~~~~~~
tenis.cpp:73:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i].y);
         ~~~~~^~~~~~~~~~~~~~~
tenis.cpp:78:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i].z);
         ~~~~~^~~~~~~~~~~~~~~
tenis.cpp:85:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &ty);
         ~~~~~^~~~~~~~~~~
tenis.cpp:89:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d", &x);
             ~~~~~^~~~~~~~~~
tenis.cpp:98:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d%d%d", &p, &x, &y);
             ~~~~~^~~~~~~~~~~~~~~~~~~~~~
#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...