Submission #1237453

#TimeUsernameProblemLanguageResultExecution timeMemory
1237453d4nnaeeKutije (COCI21_kutije)C++20
70 / 70
601 ms10816 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1005;
vector<int> adj[MAXN];
int component[MAXN];
bool visited[MAXN];

void dfs(int u, int id) {
    visited[u] = true;
    component[u] = id;
    for (int v : adj[u]) {
        if (!visited[v]) {
            dfs(v, id);
        }
    }
}
int main() {
    int n, m, q;
    cin >> n >> m >> q;
    for (int k = 0; k < m; ++k) {
        vector<int> p(n + 1);
        for (int i = 1; i <= n; ++i) {
            cin >> p[i];
        }
        for (int i = 1; i <= n; ++i) {
            adj[i].push_back(p[i]);
            adj[p[i]].push_back(i); 
        }
    }
    int id = 0;
    for (int i = 1; i <= n; ++i) {
        if (!visited[i]) {
            ++id;
            dfs(i, id);
        }
    }
    while (q--) {
        int a, b;
        cin >> a >> b;
        if (component[a] == component[b]) {
            cout << "DA"<<"\n";
        } else {
            cout << "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...