Cod sursa(job #607182)

Utilizator crushackPopescu Silviu crushack Data 10 august 2011 23:27:34
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <vector>
#define NMax 5000
using namespace std;

const char IN[]="triplete.in",OUT[]="triplete.out";

int N,M,Rez;
int P[NMax];
bool visit[NMax];
vector<int> ad[NMax];

void bfs(int x=1)
{
    int i;
    visit[x]=true;

    for (i=0;i<(int)ad[x].size();++i)
        if ( !visit[ad[x][i]] )
            P[ad[x][i]]=x,
            bfs(ad[x][i]);
        else if ( P[P[x]]==ad[x][i] )
            ++Rez;
}

int main()
{
    int x,y;
    freopen(IN,"r",stdin);
    scanf("%d%d",&N,&M);
    while (M--)
    {
        scanf("%d%d",&x,&y);
        ad[x].push_back(y);
        ad[y].push_back(x);
    }

    bfs();

    freopen(OUT,"w",stdout);
    printf("%d\n",Rez);
    fclose(stdout);

    return 0;
}