Submission #724600

#TimeUsernameProblemLanguageResultExecution timeMemory
724600TahirAliyevKutije (COCI21_kutije)C++17
35 / 70
1010 ms6428 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") using namespace std; #define ll long long int #define oo 1e18 + 5 #define pii pair<int, int> const int MAX = 1005; bitset<MAX> visited; int adj[MAX][MAX]; vector<int> g[MAX]; bitset<MAX> accesible[MAX]; void dfs(int node, int par){ visited[node] = true; accesible[par][node] = true; for(int to : g[node]){ if(!visited[to]){ if(to < par){ accesible[par] |= accesible[to]; visited |= accesible[to]; continue; } dfs(to, par); } } } int main(){ int n, m, q; cin >> n >> m >> q; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { int a; cin >> a; if(a == j) continue; adj[j][a] = 1; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if(adj[i][j]){ g[i].push_back(j); } } } for (int i = 1; i <= n; i++) { visited.reset(); dfs(i, i); } while(q--){ int a, b; cin >> a >> b; if(accesible[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...