Cod sursa(job #22570)

Utilizator pocaituDavid si Goliat pocaitu Data 26 februarie 2007 20:14:42
Problema Triplete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream.h>
#include<stdio.h>
unsigned int a,b,n,d;
unsigned int m,j,t;
unsigned int long i,k;
unsigned int x;
unsigned int long c,nr,l[4099][140];
int min(int x,int y)
{if(x<y)
  return x;
 return y;
 }
int main()
{int ma[65666][2];
 freopen("triplete.in","r",stdin);
 scanf("%u%u",&n,&m);
 for(i=1;i<=m;i++)
  {scanf("%u%u",&a,&b);
   ma[++k][0]=a;
   ma[k][1]=b;
   l[a][b/31]|=(1<<(b%31));
   l[b][a/31]|=(1<<(a%31));
   }


for(i=1;i<=k;i++)
  {x=min(ma[i][0],ma[i][1]);
  for(j=0;j<=x/31;j++)
	  {c=l[ma[i][0]][j]&l[ma[i][1]][j];
	   if(j==x/31)
		 t=x%31;
	   else
		 t=31;
	   for(d=0;d<t;d++)
		 if(c&(1<<d))
		   nr++;
	   }    }


 ofstream g("triplete.out");
g<<nr;
g.close();
return 0;
}