#include<bits/stdc++.h>
using namespace std;
int find_root(int x);
void line(int x,int y);
int boss[1000001];
int main(){
int n,m,q;
int a[q];
cin>>n;
for(int i=1;i<=100000;i++){
boss[i]=i;
}
cin>>m>>q;
for(int i=0;i<m;i++){
int n1,n2;
cin>>n1>>n2;
line(n1,n2);
}
for(int z=0;z<q;z++){
int n1,n2;
cin>>n1>>n2;
if(find_root(n1)==find_root(n2)) a[z]=1;
else a[z]=0;
}
for(int j=0;j<q;j++){
if(a[j]==1) cout<<":)"<<endl;
else cout<<":("<<endl;
}
}
int find_root(int x){
if(boss[x]==x) return x;
int root_x=find_root(boss[x]);
boss[x]=root_x;
return root_x;
}
void line(int x,int y){
int root_x=find_root(x);
int root_y=find_root(y);
boss[root_y]=root_x;
}
#include<bits/stdc++.h>
using namespace std;
int find_root(int x);
void line(int x,int y);
int boss[1000001];
int main(){
int n,m,q;
int a[q];
cin>>n;
for(int i=1;i<=100000;i++){
boss[i]=i;
}
cin>>m>>q;
for(int i=0;i<m;i++){
int n1,n2;
cin>>n1>>n2;
line(n1,n2);
}
for(int z=0;z<q;z++){
int n1,n2;
cin>>n1>>n2;
if(find_root(n1)==find_root(n2)) a[z]=1;
else a[z]=0;
}
for(int j=0;j<q;j++){
if(a[j]==1) cout<<":)"<<endl;
else cout<<":("<<endl;
}
}
int find_root(int x){
if(boss[x]==x) return x;
int root_x=find_root(boss[x]);
boss[x]=root_x;
return root_x;
}
void line(int x,int y){
int root_x=find_root(x);
int root_y=find_root(y);
boss[root_y]=root_x;
}
找到解決方法了,我把a[q]陣列設在輸入完q之後就對了,不過有大老能說一下是為什麼嗎?
#include
using namespace std;
int find_root(int x);
void line(int x,int y);
int boss[1000001];
int main(){
int n,m,q;
int a[q];
cin>>n;
for(int i=1;i<=100000;i++){
boss[i]=i;
}
cin>>m>>q;
for(int i=0;i
int n1,n2;
cin>>n1>>n2;
line(n1,n2);
}
for(int z=0;z
int n1,n2;
cin>>n1>>n2;
if(find_root(n1)==find_root(n2)) a[z]=1;
else a[z]=0;
}
for(int j=0;j
if(a[j]==1) cout<<":)"<
else cout<<":("<
}
}
int find_root(int x){
if(boss[x]==x) return x;
int root_x=find_root(boss[x]);
boss[x]=root_x;
return root_x;
}
void line(int x,int y){
int root_x=find_root(x);
int root_y=find_root(y);
boss[root_y]=root_x;
}
找到解決方法了,我把a[q]陣列設在輸入完q之後就對了,不過有大老能說一下是為什麼嗎?
如果你先設a[q]再設q,
那在設a[q]時電腦不知道q是甚麼