Cod sursa(job #272410)

Utilizator mihaipoascaPoasca Mihai mihaipoasca Data 6 martie 2009 23:38:41
Problema Triplete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<stdio.h>
#include<string.h>
#define Nmax 4100
#define Mmax 6600

FILE *fin=fopen("triplete.in","r"),
    *fout=fopen("triplete.out","w");

int N,M,rez,muchie[Mmax][2];
char viz[Nmax];

struct nod{int inf;nod* next;};
typedef nod* lista;
lista L[Nmax];

int main(){
    fscanf(fin,"%d %d",&N,&M);

    for(int i=1;i<=M;i++){
        int x,y;
        fscanf(fin,"%d %d",&x,&y);


        lista aux=new nod;
        aux->inf=x;
        aux->next=L[y];
        L[y]=aux;

        aux=new nod;
        aux->inf=y;
        aux->next=L[x];
        L[x]=aux;

        muchie[i][0]=x;
        muchie[i][1]=y;

    }

    for(int i=1;i<=M;i++){
            memset(viz,0,sizeof(viz));
            for(lista k1=L[muchie[i][0]];k1;k1=k1->next)
                viz[k1->inf]=1;
            for(lista k2=L[muchie[i][1]];k2;k2=k2->next)
                    if(viz[k2->inf])
                        ++rez;
        }

    fprintf(fout,"%d\n",rez/3);
    fclose(fin);
    fclose(fout);
    return 0;



}