Pagini recente » Istoria paginii runda/simulare_oji_2023_clasele_11_12_10_martie/clasament | Clasament ACM pe echipe | Cod sursa (job #593679) | Istoria paginii runda/24_februarie_simulare_oji_2024_clasele_11_12 | Cod sursa (job #2013457)
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin ("triplete.in");
ofstream fout ("triplete.out");
vector <int> A[4097];
bitset <4097> B[4097];
int n, m, nr;
int main () {
fin >> n >> m;
for (int i = 1; i <= m; i++) {
int x, y;
fin >> x >> y;
A[x].push_back (y);
A[y].push_back (x);
B[x][y] = 1;
B[y][x] = 1;
}
for (int i = 1; i <= n; i++) {
for (int j = 0; j < A[i].size (); j++) {
int vecin1 = A[i][j];
for(int k = 0; k < A[vecin1].size (); k++) {
int vecin2 = A[vecin1][k];
if (i != vecin1 && i != vecin2 && vecin1 != vecin2 && B[i][vecin2])
nr++;
}
}
}
fout << nr / 6;
return 0;
}