Submission #862664

#TimeUsernameProblemLanguageResultExecution timeMemory
862664HossamHero7Kutije (COCI21_kutije)C++14
70 / 70
121 ms13476 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
struct dsu{
    int n;
    vector<int> par;
    dsu(int _n){
        n = _n;
        par.resize(n);
        iota(par.begin(),par.end(),0);
    }
    int getP(int node){
        if(par[node] == node) return node;
        return par[node] = getP(par[node]);
    }
    void add(int u,int v){
        int a = getP(u), b = getP(v);
        if(a == b) return;
        par[b] = a;
    }
};
void solve(){
    int n,m,q;
    cin>>n>>m>>q;
    vector<vector<int>> v(m,vector<int>(n));
    for(auto &i:v) for(auto &j:i) cin>>j;
    dsu ds(n);
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            ds.add(j,v[i][j]-1);
        }
    }
    while(q--){
        int a,b;
        cin>>a>>b;
        a --,b --;
        cout<<(ds.getP(a) == ds.getP(b) ? "DA" : "NE")<<endl;
    }
    
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);      cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }
    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...