Pagini recente » Cod sursa (job #2650921) | Cod sursa (job #27696) | Cod sursa (job #2393938) | Cod sursa (job #2436861) | Cod sursa (job #1958193)
#include <fstream>
using namespace std;
ifstream fin ("triplete.in");
ofstream fout ("triplete.out");
unsigned int v[4140][140];
pair <int, int> a[4140];
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] | (1LL << (a[i].second % 31));
v[a[i].second][a[i].first / 31] = v[a[i].second][a[i].first / 31] | (1LL << (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 != 0){
sol++;
nr = nr & (nr-1);
}
}
}
fout << sol/3;
return 0;
}