Cod sursa(job #2293127)

Utilizator ptudortudor P ptudor Data 30 noiembrie 2018 16:15:17
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("sate.in");
ofstream out("sate.out");
int n,m,x,y,dis[30005];
queue <pair<int,int>> sate[30005];
queue <int> q;
int main()
{int i,a,b,c;
    in>>n>>m>>x>>y;
    for (i=1;i<=m;i++)
    {
        in>>a>>b>>c;
        sate[a].push({b,c});
        sate[b].push({a,-1*c});
    }

   while (!sate[x].empty())
    {
        dis[sate[x].front().first]=sate[x].front().second;
        q.push(sate[x].front().first);
        sate[x].pop();
    }
    while (!q.empty())
    {
        c=q.front();
        q.pop();
        while (!sate[c].empty())
        {
        int trimitor=sate[c].front().first,distanta=sate[c].front().second;
        dis[trimitor]=dis[c]+distanta;
        q.push(trimitor);
        sate[c].pop();
        }
    }
    out<<dis[y]<<"\n";
    out.close();
    in.close();
    return 0;
}