Cod sursa(job #1098202)

Utilizator superman_01Avramescu Cristian superman_01 Data 4 februarie 2014 17:19:08
Problema Triplete Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <bitset>

#define NMAX 4100
#define SZ 1500000
using namespace std;

ifstream in ( "triplete.in" );
ofstream out ( "triplete.out" );

int N , M , Answer ;
bitset < NMAX > Edge[NMAX];

char input[SZ],*ina=input;
  
inline int atoi()
{
    int nr=0;
    for(;!(*ina>='0' && *ina<='9');++ina);
    for(;*ina>='0' && *ina<='9';++ina)
        nr=nr*10+(*ina-'0');
    return nr;
}


int main ( void )
{
	int i , j , first_Animal , second_Animal ;
	
	in.read(input , SZ);
	N = atoi(), M = atoi();
	for ( i = 1 ; i <= M ; ++i )
	{
		first_Animal = atoi() , second_Animal = atoi();
		Edge[first_Animal][second_Animal] = Edge[second_Animal][first_Animal] = true ;
	}
	
	for ( i = 1 ; i <= N ; ++i )
		for ( j = i + 1 ; j <= N ; ++j )
			if ( Edge[i][j] )
				Answer += ( Edge[i] & Edge[j]).count();
			
	out << Answer/3 << "\n";
	in.close();
	out.close();
	return 0;
}