Cod sursa(job #1213677)

Utilizator DjokValeriu Motroi Djok Data 28 iulie 2014 19:13:52
Problema Triplete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<algorithm>
using namespace std;

typedef struct lnod {
      int info;
      lnod *next; 
}*nod;

int i,n,m,gmb,fnc,rs;
nod lda[4100],p,r,q;
bool u;

void add(int x,nod &y) {
    nod p=new lnod;
    p->info=x;
    p->next=y;
    y=p; 
}

int main()
{
  freopen("triplete.in","r",stdin);
  freopen("triplete.out","w",stdout);
  
  scanf("%d%d",&n,&m);
  while(m--)
  {
    scanf("%d%d",&gmb,&fnc);
    if(gmb>fnc) add(gmb,lda[fnc]);
    else add(fnc,lda[gmb]);        
  }
  
  for(i=1;i<n;++i)
    for(p=lda[i];p;p=p->next)
      for(r=p->next;r;r=r->next)
      {
        gmb=p->info; fnc=r->info;
        if(gmb>fnc) swap(gmb,fnc);
       
        for(q=lda[gmb],u=0;q && !u;q=q->next)
        if(q->info==fnc) ++rs,u=1;                         
      }
   
   printf("%d\n",rs);
    
 return 0;   
}