Cod sursa(job #2273215)

Utilizator eilerGabriel-Ciprian Stanciu eiler Data 31 octombrie 2018 10:42:17
Problema Sate Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <vector>
using namespace std;

int n, m, dx, dy, dist[100025];
vector<int> l[100025], d[100025];

void distanta(int cr, int stop){
    for (unsigned int i=0; i<l[cr].size(); i++)
        if (dist[l[cr][i]]==-1){
            dist[l[cr][i]]=dist[cr]+d[cr][i];
            distanta(l[cr][i], stop);
        }
}

int main(){
    int i, a, b, ds;

    ifstream fin ("sate.in");
    fin >> n >> m >> dx >> dy;
    for (i=0; i<m; i++){
        fin >> a >> b >> ds;
        l[a].push_back(b);
        d[a].push_back(ds);
        l[b].push_back(a);
        d[b].push_back(-ds);
    }
    fin.close();

    for (i=1; i<=n; i++)
        dist[i]=-1;
    dist[dx]=0;

    distanta(dx, dy);

    ofstream fout ("sate.out");
    fout << dist[dy];
    fout.close();

    return 0;
}