Cod sursa(job #2273209)

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

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

int dist=0;
bool viz[100025];
void distanta(int cr, int stop, int parc){
    if (cr==stop)
        dist=parc;

    if (viz[stop]==true)
        return;

    for (unsigned int i=0; i<l[cr].size(); i++)
        if (viz[l[cr][i]]==false){
            viz[l[cr][i]]=true;
            distanta(l[cr][i], stop, parc+d[cr][i]);
        }
}

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();

    viz[dx]=true;
    distanta(dx, dy, 0);

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

    return 0;
}