File Transfer

来源:互联网 发布:龙泉驾校网络上课流程 编辑:程序博客网 时间:2024/06/13 07:36

File Transfer

#include<stdio.h>#include<stdlib.h>#include<cstdio>#include<iostream>#include<stack>#include<queue>#include<string.h>using namespace std;#define N 10010int Fa[N];void Init(){    for(int i=0;i<N;i++)        Fa[i]=i;}int Find(int x){    int r=x;    while(r!=Fa[r])        r=Fa[r];    int i=x,j;    while(i!=r)    {        j=Fa[i];        Fa[i]=r;        i=j;    }    return r;}int main(){    Init();    int n,a,b,fa,fb;    char c;    scanf("%d",&n);    while(scanf("%c",&c))    {        if(c=='C')        {            scanf("%d%d",&a,&b);            fa=Find(a);            fb=Find(b);            if(fa!=fb)                printf("no\n");            else                    printf("yes\n");        }        if(c=='I')        {            scanf("%d%d",&a,&b);            fa=Find(a);            fb=Find(b);            if(fa!=fb)                Fa[fb]=fa;        }        if(c=='S')        {            int ans=0;            for(int i=1;i<=n;i++)            {                if(Fa[i]==i)                    ans++;            }            if(ans==1)                printf("The network is connected.");            else                printf("There are %d components.",ans);            return 0;        }    }    return 0;}