Submission #509680

#TimeUsernameProblemLanguageResultExecution timeMemory
509680KoDKutije (COCI21_kutije)C++17
35 / 70
1043 ms11108 KiB
#include <bits/stdc++.h> using std::vector; using std::array; using std::pair; using std::tuple; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); int N, M, Q; std::cin >> N >> M >> Q; vector edge(N, vector<char>(N)); for (int i = 0; i < M; ++i) { for (int j = 0; j < N; ++j) { int p; std::cin >> p; edge[p - 1][j] = true; } } vector reach(N, vector<char>(N)); for (int src = 0; src < N; ++src) { std::queue<int> que; const auto push = [&](const int u) { if (!reach[src][u]) { reach[src][u] = true; que.push(u); } }; push(src); while (!que.empty()) { const int u = que.front(); que.pop(); for (int i = 0; i < N; ++i) { if (edge[u][i]) { push(i); } } } } while (Q--) { int a, b; std::cin >> a >> b; std::cout << (reach[a - 1][b - 1] ? "DA" : "NE") << '\n'; } 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...