제출 #698272

#제출 시각아이디문제언어결과실행 시간메모리
698272ancuber1031Kutije (COCI21_kutije)C++14
70 / 70
158 ms1796 KiB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define endl '\n'

int n, m, q;

struct DSU{
    vector<int> bs;
    void init(int _n) {
        bs.assign(_n+5,0);
        for (int i = 1; i <= _n; ++i) {
            bs[i] = i;
        }
    }
    int find(int p) {
        if (p == bs[p]) return p;
        return bs[p] = find(bs[p]);
    }
    void add(int u, int v) {
        int x = find(u), y = find(v);
        bs[x] = y;
    }
} dsu;

int main() {
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin>>n>>m>>q;
    dsu.init(n);
    for (int i = 1; i <= m; ++i) {
        for (int j = 1; j <= n; ++j) {
            int p; cin>>p;
            dsu.add(p,j);
        }
    }
    while(q--) {
        int u, v; cin>>u>>v;
        if (dsu.find(u) == dsu.find(v)) cout<<"DA"<<endl;
        else cout<<"NE"<<endl;
    }
    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...