# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
684392 | doni | Kutije (COCI21_kutije) | C++14 | 433 ms | 25312 KiB |
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 ll long long
#define fi first
#define se second
ll parent[1001];
ll r[1001];
ll z=0;
vector<string>s;
void make_set(ll v) {
parent[v] = v;
r[v] = z;
}
ll find_set(ll v) {
if (v == parent[v])
return v;
return parent[v] = find_set (parent[v]);
}
void union_sets(ll a, ll b) {
a = find_set (a);
b = find_set (b);
if (a != b) {
if (r[a] < r[b])
swap (a, b);
parent[b] = a;
if (r[a] == r[b])
++r[a];
}
}
void bf(){
ll n,a,b,m,q;
cin>>n>>m>>q;
for(ll i=1;i<=n;i++){
make_set(i);
}
for(ll mm=0;mm<m;mm++){
for(ll i=0;i<n;i++){
cin>>a;
union_sets(a,i+1);
}
}
for(ll i=0;i<q;i++){
cin>>a>>b;
if(find_set(a)==find_set(b)){
s.push_back("DA");
}
else{
s.push_back("NE");
}
}
for(int i=0;i<s.size();i++){
cout<<s[i]<<"\n";
}
}
/*
*/
int main(){
// ll t;cin>>t;while(t--)
bf();
}
Compilation message (stderr)
# | 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... |