Cod sursa(job #2628654)

Utilizator loraclorac lorac lorac Data 16 iunie 2020 19:16:23
Problema Traseu Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("traseu.in");
ofstream cout("traseu.out");
vector<pair<int,int> > vec[70];
int n,m,x,y,z,sum,tot;
bool ok[70];
void df(int nod,int base)
{
    ok[nod]=true;
    for(auto t:vec[nod])
    if(t.first==base)
        tot+=sum+t.second;
    else if(!ok[t.first])
    {
        sum+=t.second;
        df(t.first,base);
        sum-=t.second;
    }
    ok[nod]=false;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;++i)
    {
        cin>>x>>y>>z;
        vec[x].push_back({y,z});
    }
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<i;++j)
            ok[j]=true;
        for(int j=i;j<=n;++j)
            ok[j]=false;
        df(i,i);
    }
    cout<<tot<<'\n';
    return 0;
}