Pagini recente » Cod sursa (job #1557724) | Cod sursa (job #1829241) | Cod sursa (job #1932633) | Cod sursa (job #1511158) | Cod sursa (job #1358170)
#include <fstream>
#include <algorithm>
#include <vector>
#define x first
#define y second
using namespace std;
ifstream fin ("triplete.in");
ofstream fout ("triplete.out");
int N, M, a, b, sol;
vector < int > V[4100];
bool Caut_Binar(int i, int val)
{
int st = 0, dr = V[i].size() - 1, mij;
while (st <= dr)
{
mij = (st + dr) / 2;
if (V[i][mij] < val) st = mij + 1;
else if (V[i][mij] > val) dr = mij - 1;
else return 1;
}
return 0;
}
int main()
{
fin >> N >> M;
for (int i = 1; i <= M; i++)
{
fin >> a >> b;
V[a].push_back(b);
V[b].push_back(a);
}
for (int i = 1; i <= 4100; i++)
{
sort (V[i].begin(), V[i].end());
}
for (int i = 1; i <= 4100; i++)
{
for (int j = 1; j < V[i].size(); j++)
{
if (Caut_Binar(V[i][j-1], V[i][j])) sol++;
}
}
fout << sol / 3 << '\n';
fout.close();
return 0;
}