Cod sursa(job #2554782)

Utilizator mihnea03Ciocioiu Mihnea mihnea03 Data 23 februarie 2020 13:16:38
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <vector>
#define dim 30010
using namespace std;
vector <pair <int,int> >a[dim];
int d[dim];
int f[dim];
int c[dim];
int i,j,k,n,m,dist,s,fi,x,y,p,u;

int main() {
    ifstream fin("sate.in");
    ofstream fout("sate.out");
    fin>>n>>m>>s>>fi;
    for (i=1;i<=m;i++) {
        fin>>x>>y>>dist;
        a[x].push_back(make_pair(y,dist));
        dist*=-1;
        a[y].push_back(make_pair(x,dist));
    }
    c[p=u=1]=s;
    f[s]=1;
    d[s]=0;
    while (p<=u) {
        int nod=c[p];
        for (i=0;i<a[nod].size();i++) {
            int vecin=a[nod][i].first;
            int dist=a[nod][i].second;
            if (f[vecin]==0) {
                f[vecin]=1;
                d[vecin]=d[nod]+dist;
                if (vecin==fi) {
                    fout<<d[vecin];
                    return 0;
                }
                c[++u]=vecin;
            }
        }
        p++;
    }
    fout<<d[fi];
    return 0;
}