Pagini recente » Cod sursa (job #1381655) | Cod sursa (job #2907835) | Cod sursa (job #324812) | Cod sursa (job #1368146) | Cod sursa (job #1958139)
#include <fstream>
using namespace std;
ifstream fin ("triplete.in");
ofstream fout ("triplete.out");
unsigned int v[4100][130];
pair <int, int> a[4100];
int main (){
int n, m;
fin >> n >> m;
int bucket = (n-1)/31;
for (int i = 1; i <= m; ++i){
fin >> a[i].first;
a[i].first--;
fin >> a[i].second;
a[i].second--;
v[a[i].first][a[i].second / 31] = v[a[i].first][a[i].second / 31] | (1 << (a[i].second % 31));
v[a[i].second][a[i].first / 31] = v[a[i].second][a[i].first / 31] | (1 << (a[i].first % 31));
}
long long sol = 0;
for (int i = 1; i <= m; ++i){
for (int j = 0; j <= bucket; ++j){
int nr = (v[a[i].first][j] & v[a[i].second][j]);
while (nr != 1){
if (nr%2 == 1)
sol++;
nr = nr/2;
}
sol++;
}
}
fout << sol/3;
return 0;
}