Cod sursa(job #3187874)

Utilizator Robert_NicuNicu Robert Cristian Robert_Nicu Data 30 decembrie 2023 21:55:07
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
#define DIM 30001
using namespace std;

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

int n, m, x, y, a, b, c, d;
bool parcurs[DIM][DIM];
int i, j, k;
vector <pair <int, int> > G[DIM];

int main(){
    fin>>n>>m>>x>>y;
    for(i=1; i<=m; i++){
        fin>>a>>b>>c;
        G[a].push_back(make_pair(b, c));
        G[b].push_back(make_pair(a, -c));
    }
    for(i=1; i<=n; i++){
        for(j=0; j<G[i].size(); j++){
            a=G[i][j].first;
            c=G[i][j].second;
            if(!parcurs[i][a]){
                for(k=0; k<G[a].size(); k++){
                    b=G[a][k].first;
                    d=G[a][k].second;
                    if(b!=i){
                        G[i].push_back(make_pair(b, c+d));
                        G[b].push_back(make_pair(i, -(c+d)));
                    }
                }
                parcurs[i][a]=1;
            }

        }
    }
    for(i=0; i<G[x].size(); i++){
        if(G[x][i].first==y){
            fout<<G[x][i].second;
            break;
        }
    }
}