Cod sursa(job #2546460)

Utilizator Seb0730Matei Sebastian Seb0730 Data 14 februarie 2020 10:48:51
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>

#include <fstream>

#include <vector>

#include <queue>

using namespace std;

ifstream in("sate.in");

ofstream out("sate.out");



struct abc{

    int nod, cost;

    bool operator <(const abc&a)const{

        return cost>a.cost;

    }

};





int n, m, a, b, c, x, y, op, os, dist[100000];

vector <abc> v[100000];

priority_queue <abc> q;









int main()

{



    in>>n>>m>>op>>os;

    for(int i=1;i<=n;i++)dist[i]=1<<30;

    for(int i=1;i<=m;i++){

        in>>a>>b>>c;

        v[a].push_back({b, c});

        v[b].push_back({a, -c});



    }

    dist[op]=0;

    q.push({op, 0});

    while(!q.empty()){

        x=q.top().nod;

        y=q.top().cost;

        q.pop();

        //if(y!=dist[x])continue;

        for(auto i:v[x]){


                if(dist[i.nod]>dist[x]+i.cost){

                    dist[i.nod]=dist[x]+i.cost;

                    q.push({i.nod, dist[i.nod]});



               }



        }

    }




    out<<dist[os];







}