This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |