Pagini recente » Cod sursa (job #831650) | Istoria paginii utilizator/alexandrujijian | Cod sursa (job #2500751) | Cod sursa (job #183824) | Cod sursa (job #1567882)
#include<fstream>
#include<iostream>
#include<vector>
using namespace std;
ifstream f("triplete.in");
ofstream g("triplete.out");
vector <int> G[5000];
int lv[5000], use[5000];
int n, m, nrt;
void citire()
{
int i, x, y;
f>>n>>m;
for(i=1; i<=m; i++){
f>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
}
void DFS(int nod, int tata)
{
use[nod] = 1;
lv[nod] = lv[tata] + 1;
int vecin, i;
vector <int> ::iterator it;
for(it = G[nod].begin(); it != G[nod].end(); it++){
vecin = *it;
if(use[vecin]){
if(lv[vecin] == lv[nod] - 2){
nrt++;
}
}
else{
DFS(vecin, nod);
}
}
}
int main()
{
citire();
DFS(1, 0);
g<<nrt<<"\n";
return 0;
}