Cod sursa(job #2298547)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 8 decembrie 2018 11:22:03
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");

vector<pair <int,int> >a[30100];
queue <int> q;

int d[30100],Y,n,viz[30100];


int bfs(int S)
{
    int i,nod;
    q.push(S);
   // for(i=1;i<=n;i++)d[i]=-1;
    d[S]=0;
    viz[S]=1;
    while(!q.empty())
    {
        nod=q.front();
        for(i=0;i<a[nod].size();i++)
        {
            int x=a[nod][i].first;
            int y=a[nod][i].second;
            if(viz[x]==0)
            {
                viz[x]=1;
                q.push(x);
                d[x]=d[nod]+y;
                if(x==Y)return d[Y];
            }
        }
        q.pop();
    }
}



int m,i,x,p1,dist,p2;

int main()
{
    f>>n>>m>>x>>Y;
    for(i=1;i<=m;i++)
    {
        f>>p1>>p2>>dist;
        a[p1].push_back({p2,dist});
        a[p2].push_back({p1,-dist});
    }

    g<<bfs(x);


    return 0;
}