Submission #233253

#TimeUsernameProblemLanguageResultExecution timeMemory
233253VEGAnnTenis (COI19_tenis)C++14
18 / 100
1092 ms4480 KiB
#include <bits/stdc++.h> using namespace std; const int N = 100100; const int md = int(1e9) + 7; int loc[3][N], n, q, a[3][N]; bool mrk[N]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); #ifdef _LOCAL freopen("in.txt","r",stdin); #endif // _LOCAL cin >> n >> q; for (int tp = 0; tp < 3; tp++) for (int i = 0; i < n; i++){ int x; cin >> x; x--; loc[tp][x] = i; a[tp][i] = x; } for (; q; q--){ int tp; cin >> tp; if (tp == 1){ int x; cin >> x; x--; fill(mrk, mrk + n, 0); for (int tp = 0; tp < 3; tp++) for (int i = loc[tp][x]; i < n; i++) mrk[a[tp][i]] = 1; bool was = 1; while (was) { was = 0; for (int tp = 0; tp < 3; tp++) for (int i = 0, cur = 0; i < n; i++){ assert(a[tp][i] == a[tp][loc[tp][a[tp][i]]]); cur |= mrk[a[tp][i]]; if (cur) { if (!mrk[a[tp][i]]) was = 1; mrk[a[tp][i]] = 1; } } } bool ok = 1; for (int i = 0; i < n && ok; i++) if (!mrk[i]) ok = 0; cout << (ok ? "DA\n" : "NE\n"); } else { int x, y; cin >> tp >> x >> y; tp--; x--; y--; swap(loc[tp][x], loc[tp][y]); swap(a[tp][loc[tp][x]], a[tp][loc[tp][y]]); } } return 0; }
#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...