Submission #528350

#TimeUsernameProblemLanguageResultExecution timeMemory
528350N1NT3NDOKutije (COCI21_kutije)C++14
25 / 70
108 ms2420 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define sz(x) (int)x.size() #define fi first #define sd second #define all(x) x.begin(), x.end() //#pragma GCC target ("avx2") //#pragma GCC optimization ("O3") //#pragma GCC optimization ("unroll-loops") using namespace std; //using namespace __gnu_pbds; //typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; const int N = 1010; bitset<N> bt[N]; int n, q, m, p[N]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> q; for(int i = 1; i <= n; i++) bt[i][i] = 1; for(int i = 1; i <= m; i++) { for(int j = 1; j <= n; j++) cin >> p[j]; while(true) { bool f = 0; for(int j = 1; j <= n; j++) { if (bt[j] != (bt[j] | bt[p[j]])) f = 1; if (bt[p[j]] != (bt[j] | bt[p[j]])) f = 1; bt[j] |= bt[p[j]]; bt[p[j]] |= bt[j]; } if (!f) break; } } while(q--) { int a, b; cin >> a >> b; if (bt[a][b]) cout << "DA" << '\n'; else cout << "NE" << '\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...