Cod sursa(job #3230170)

Utilizator Octa-pe-infoNechifor Octavian Octa-pe-info Data 19 mai 2024 17:21:54
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <vector>
using namespace std;

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

vector<vector<pair<int,int>>>tabel;///first==nod_c ///second==dist
vector<bool>viz;
int n,m,x,y,sum=0;

void dfs(int nod){

    if(nod==y){

        fout<<sum;
        return;

    }

    viz[nod]=1;

    for(auto i : tabel[nod])
        if(!viz[i.first])
            sum+=i.second, dfs(i.first), sum-=i.second;


}

int main()
{

    fin>>n>>m>>x>>y;

    if(x>y)
        swap(x,y);

    tabel.resize(n+1);
    viz.resize(n+1,0);
    for(int i=1;i<=m;i++){

        int v,w,d;
        fin>>v>>w>>d;
        tabel[v].push_back({w,d});

    }

    for(int i=1;i<n;i++)
        if(tabel[i].size()>1){

            for(int j=0;j<tabel[i].size()-1;j++)
                for(int l=j+1;l<tabel[i].size();l++)
                     tabel[tabel[i][j].first].push_back({tabel[i][l].first,tabel[i][l].second-tabel[i][j].second});
        }

    dfs(x);

    return 0;
}