Cod sursa(job #1982430)

Utilizator dragos231456Neghina Dragos dragos231456 Data 18 mai 2017 19:55:17
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector<int> vecini[30005],distanta[30005];
deque<int> q;
int n,m,x,y,a,b,start,d,cost[30005];

void bfs(int x)
{
    q.push_front(x);
    while(!q.empty())
    {
        start=q.front();
        q.pop_front();
        for(int i=0;i<vecini[start].size();++i)
        {
            if(cost[vecini[start][i]]==0)
            {
                if(vecini[start][i]<start) cost[vecini[start][i]]=cost[start]-distanta[start][i];
                else cost[vecini[start][i]]=cost[start]+distanta[start][i];
                q.push_back(vecini[start][i]);
            }
        }
    }
}

int main()
{
    f>>n>>m>>x>>y;
    for(int i=1;i<=m;++i)
    {
        f>>a>>b>>d;
        vecini[a].push_back(b); vecini[b].push_back(a);
        distanta[a].push_back(d); distanta[b].push_back(d);
    }
    bfs(x);
    g<<cost[y];
    return 0;
}