Cod sursa(job #325232)

Utilizator doru.nituNitu Doru Constantin doru.nitu Data 19 iunie 2009 16:41:46
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.05 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

struct nod
{ int p[2000];
}a[4100];

int i,j,k,n,m,x,y,p,ok1,ok,rez,mij;
bool b[4100];

int cautbin(int x,int i)
{ int st;
  bool ok=0;
  for(st=1;st<=a[i].p[0];st++) if(a[i].p[st]==x) return 1;
  return 0;
}
             

int main()
{ 
    freopen("triplete.in","r",stdin);
    freopen("triplete.out","w",stdout);
    
    scanf("%d %d",&n,&m);
    
    for(i=1;i<=m;i++) { scanf("%d %d",&x,&y);
                        a[x].p[++a[x].p[0]]=y;
                      }
                        
                      
                      
     for(i=1;i<=n;i++) {  if(a[i].p[0])  for(j=1;j<=a[i].p[0];j++)
                                           if(a[a[i].p[j]].p[0])
                                             for(k=1;k<=a[a[i].p[j]].p[0];k++) {ok=0;
                                                                                if(!b[i]) ok=cautbin(a[a[i].p[j]].p[k],i);
                                                                                if(!ok) { ok1=0;
                                                                                         if(!b[a[a[i].p[j]].p[k]]) ok1=cautbin(i,a[a[i].p[j]].p[k]);
                                                                                         if(ok1){ rez++;
                                                                                                 } 
                                                                                        }                                        
                                                                                else rez++;
                                                                              }
                        b[i]=1;                                                      
                      } 
                                                                             
    printf("%d\n",rez);
    fclose(stdin);
    fclose(stdout);
    return 0;
}