Cod sursa(job #1471997)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 15 august 2015 20:15:41
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream>
using namespace std;
ifstream in("patrate.in");
ofstream out("patrate.out");

struct muchie
{
    int x, y;
};

const int nmax = 4100, mmax = 66000, b = 32;
int n, m, rasp, vecini[nmax][nmax / b];
muchie v[mmax];

int nb1(int x)
{
    int nb = 0;
    while (x)
    {
        ++ nb;
        x &= (x - 1);
    }
 
    return nb;
}

int main()
{
    int player_unu=0;
    
	in>>n>>m;
    for (int i = 1; i<=m ; i++)
    {
         in>>v[i].x>>v[i].y;

         if (v[i].x>v[i].y)
			swap(v[i].x, v[i].y);

         vecini[v[i].x][v[i].y / b] += (1 << (v[i].y % b)) ;
    }

    for (int i = 1; i<=m ; i++)
    {
        for (int j = 0; j<=n / b; j++)
			rasp += nb1(vecini[v[i].x][j] & vecini[v[i].y][j]);
    }

    out<<rasp<<'\b';

    return player_unu;
}