Submission #1346454

#TimeUsernameProblemLanguageResultExecution timeMemory
1346454msb.83Kutije (COCI21_kutije)C++20
35 / 70
1095 ms10688 KiB
//Rahman ve Rahim olan Allah'ın adıyla
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mid ((st+end)/2)
#define fi first
#define se second
const int INF=1e15+5;
const int E16=1e6;
const int ONE=1;
const int TWO=2;
const int ZERO=0;
const int MOD=1e9+7;//(x+MOD)%MOD
//el.erase(unique(el.begin(),el.end()),el.end());
int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n,m,qry,a;cin>>n>>m>>qry;vector<vector<int>>adj(n);
    while(m--){
        for(int i=0;i<n;i++){
            cin>>a;a--;if(a==i) continue;
            adj[a].pb(i);
        }
    }queue<int>q;vector<vector<bool>>vis(n,vector<bool>(n,false));
    for(int i=0;i<n;i++){
        q.push(i);vis[i][i]=true;
        while(!q.empty()){
            int cur=q.front();q.pop();
            if(i<=cur){
                for(auto go:adj[cur]){
                    if(vis[i][go]) continue;
                    vis[i][go]=true;
                    q.push(go);
                }
            }else{
                for(int j=0;j<n;j++){
                    if(vis[cur][j]){vis[i][j]=true;}
                }
            }
        }
    }int b;
    while(qry--){
        cin>>a>>b;a--;b--;
        if(vis[a][b]){
            cout<<"DA\n";
        }else{
            cout<<"NE\n";
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...