Pagini recente » Cod sursa (job #387947) | Cod sursa (job #2357035) | Cod sursa (job #1029662) | Cod sursa (job #1389159) | Cod sursa (job #1098202)
#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;
}