Cod sursa(job #1759486)

Utilizator plecinspaniaCapsunar plecinspania Data 19 septembrie 2016 12:14:17
Problema Triplete Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("triplete.in");
ofstream fout("triplete.out");

vector <int> v[4100];
int n,m,viz[4100],cntfin;

void Citire()
{
    int i,x,y;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        v[x].push_back(y);v[y].push_back(x);
    }
    fin.close();
}
void DFS(int k,int pred,int cnt)
{
    ///cout<<k<<" "<<pred<<" "<<cnt<<endl<<cntfin<<endl;;
    cnt++;
    int i,j;
    viz[k]=1;
    for(i=0;i<v[k].size();i++)
        if(viz[v[k][i]]==1&&v[k][i]!=pred&&cnt==2)
        {
            ///for(j=1;j<=n;j++) viz[j]=0;
            cntfin++;
            return;
        }
        else if(viz[v[k][i]]==0) DFS(v[k][i],k,cnt);
    return;
}

void Rezolvare()
{
    int i,j;
    cntfin=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++) viz[j]=0;
        DFS(i,0,0);
    }
    fout<<cntfin<<"\n";
    fout.close();
}

int main()
{
    Citire();
    Rezolvare();
    return 0;
}