Cod sursa(job #13094)

Utilizator moga_florianFlorian MOGA moga_florian Data 5 februarie 2007 17:08:23
Problema Triplete Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
using namespace std;
#include<fstream>
#include<stdio.h>

int sol=0;
int a[4100][140],q;

int main()
{
FILE *fin=fopen("triplete.in","r"),
     *fout=fopen("triplete.out","w");
 
int n,m,i,x,y,j,k;
memset(a,0,sizeof a);
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=m;i++)
  {
  fscanf(fin,"%d%d",&x,&y);
  a[x][y/31]|=(1<<(y%31));
  a[y][x/31]|=(1<<(x%31));  
  }
  
for(i=1;i<n;i++)
  for(j=i+1;j<=n;j++)
   if(a[i][j/31]&(1<<(j%31)))
    {
    for(k=0;k<=n/31+1;k++)
       {
       x=a[i][k]&a[j][k];
       for(q=(1<<30);q;q>>=1)
          if(x&q)
            sol++;       
       }                         
    }

fprintf(fout,"%d\n",sol/3);

fclose(fin);
fclose(fout);
return 0;
}