Pagini recente » Cod sursa (job #2381314) | Cod sursa (job #1144134) | Cod sursa (job #103825) | Cod sursa (job #1886934) | Cod sursa (job #1575621)
#include<fstream>
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<bitset>
using namespace std;
ofstream g("triplete.out");
bitset <4100> G[4100];
int X[66000], Y[66000];
char Buffer[1000000];
int n, m, sol, pos;
void citeste(int & nr)
{
nr = 0;
while(Buffer[pos] < '0' || Buffer[pos] > '9')
pos++;
while(Buffer[pos] >= '0' && Buffer[pos] <= '9')
nr = nr*10 + Buffer[pos++] - '0';
}
void citire()
{
freopen("triplete.in", "r", stdin);
fread(Buffer, 1, 1000000, stdin);
int i;
citeste(n);citeste(m);
for(i=1; i<=m; i++){
citeste(X[i]);citeste(Y[i]);
G[X[i]].set(Y[i]);
G[Y[i]].set(X[i]);
}
}
void rez()
{
bitset <4100> vec;
for(int i=1; i<=m; i++){
vec = G[X[i]] & G[Y[i]];
sol += vec.count();
}
sol /= 3;
g<<sol<<"\n";
}
int main()
{
citire();
rez();
return 0;
}