Friday, 2 October 2015

UVA 1160 X-Plosives (UVALive 3644, Regionals 2006 >> Europe - Southwestern)

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / uva / uvalive / spoj), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100000

int par[MX+2];

int findPar(int x)
{
    if(par[x]==x) return x;
    return par[x]=findPar(par[x]);
}

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    int tc, kk=1, n, x, y;
    string s;
    char ch;
    for(int i=0;i<=MX;i++) par[i]=i;
    int cnt=0;
    while(cin>>x)
    {
        if(x==-1)
        {
            cout<<cnt<<"\n";
            for(int i=0;i<=1e5;i++) par[i]=i;
            cnt=0;
            continue;
        }
        cin>>y;
        if(findPar(x)==findPar(y))      cnt++;
        else    par[findPar(x)]=findPar(y);
    }
return 0;
}

No comments:

Post a Comment