Submission #1237304

#TimeUsernameProblemLanguageResultExecution timeMemory
1237304_snoopy_Kutije (COCI21_kutije)C++20
70 / 70
619 ms66468 KiB
#include <bits/stdc++.h>
using namespace std;

long long int arr[1000010];
vector<long long int>adj[1000010];
vector<pair<long long int, long long int>>a_b;
bool vis[1000010];
long long int component[1010];
vector<string>str;

void dfs(long long int s, long long int j){
    component[s]=j;
    vis[s]=true;

    for(auto x:adj[s]){
        if(!vis[x]){
            dfs(x, j);
        }
    }


}


int main(){

    long long int n, m, q, i, j;

    cin>>n>>m>>q;

    for(j=0; j<m; j++){
        for(i=1; i<=n; i++){
            cin>>arr[i];
            adj[i].push_back(arr[i]);
            adj[arr[i]].push_back(i);
        }

    }
    long long int a, b;
    for(i=0; i<q; i++){
        cin>>a>>b;
        a_b.push_back({a, b});
    }

    for(i=1; i<=n; i++){
        if(!vis[i]){
            j++;
            dfs(i, j);
        }
    }

    for(i=0; i<q; i++){
        a=a_b[i].first;
        b=a_b[i].second;
        if(component[b]==component[a]){
            str.push_back("DA");
        }
        else{
            str.push_back("NE");
        }
    }

    for(i=0; i<q; i++){
        cout<<str[i]<<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...