Submission #703998

#TimeUsernameProblemLanguageResultExecution timeMemory
703998PacybwoahKutije (COCI21_kutije)C++14
70 / 70
147 ms9516 KiB
#include<iostream> #include<vector> #define ll long long using namespace std; vector<int> dsu,sz; int query(int x){ if(x==dsu[x]) return x; int tmp=query(dsu[x]); dsu[x]=tmp; return tmp; } void unite(int a,int b){ a=query(a); b=query(b); if(a==b) return; if(sz[a]>sz[b]){ dsu[b]=a; sz[a]+=sz[b]; } else{ dsu[a]=b; sz[b]+=sz[a]; } } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n,m,q; cin>>n>>m>>q; dsu.resize(n+1); sz.resize(n+1); for(int i=1;i<=n;i++){ dsu[i]=i; sz[i]=1; } int tmpp; for(int i=0;i<m;i++){ for(int j=1;j<=n;j++){ cin>>tmpp; unite(tmpp,j); } } int a,b; for(int i=0;i<q;i++){ cin>>a>>b; if(query(a)==query(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...