Cod sursa(job #1195597)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 8 iunie 2014 00:30:46
Problema Triplete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
long long int v[4096][64];
int nr_biti(long long int x)
{
    int count = 0;
    while(x)
    {
        x=x&(x-1);
        count++;
    }
    return count;
}
ifstream fin("triplete.in");
ofstream fout("triplete.out");
int main ()
{
    int n, m;
    int a, b;
    fin>>n>>m;
    for(int i=0;i<m;i++)
    {
        fin>>a>>b;
        a--;b--;
        v[a][b>>6] |= 1LL<<(b%64);
        v[b][a>>6] |= 1LL<<(a%64);
    }
    int count=0;
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(v[i][j>>6]&(1LL<<(j%64)))
            {
                for(int k=0;k<64;k++)
                {
                    count+=nr_biti(v[i][k] & v[j][k]);
                }
            }
        }
    }
    fout<<count/3;
}