Cod sursa(job #3272195)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 28 ianuarie 2025 20:20:06
Problema Triplete Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("triplete.in");
ofstream fout("triplete.out");
const int biti = 32;
int n, m, i, j, x[65552], y[65552], bit;
int a[4102][4102 / biti + 2], rasp;

int main() {
    fin >> n >> m;
    for(i = 0; i < m; i++) {
        fin >> x[i] >> y[i];
        x[i]--;
        y[i]--;
    }

    for(i = 0; i < m; i++) {
        bit = x[i] % biti;
        a[y[i]][x[i] / biti] |= (1 << bit);

        bit = y[i] % biti;
        a[x[i]][y[i] / biti] |= (1 << bit);
    }

    rasp = 0;
    for(i = 0; i < m; i++) {
        for(j = 0; j <= n / biti; j++) {
            rasp += __builtin_popcount(a[x[i]][j] & a[y[i]][j]);
        }
    }
    fout << rasp / 3 << "\n";

    return 0;
}