Cod sursa(job #1052748)

Utilizator leontinLeontin leontin Data 11 decembrie 2013 19:23:32
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
#define max 30001
vector<pair<int,int>> v[max];
queue<int> q;
int dist[max],viz[max],stop;

int suma[max];
ifstream f("sate.in");
ofstream g("sate.out");



void bfs()
{
    while(!q.empty())
    {
        int nod=q.front();
        q.pop();
       // g<<nod<<" ";
        for(int i=0;i<v[nod].size();i++)
            if(viz[v[nod][i].first]==0)
        {
            q.push(v[nod][i].first);
            viz[v[nod][i].first]=1;

                dist[v[nod][i].first]=dist[nod]+v[nod][i].second;


                if(v[nod][i].first==stop)
                    break;



        }
    }

}


int main()
{
    long n,m,start,i,j,x,y,c;
    f>>n>>m>>start>>stop;
    for(i=1;i<=m;i++)
    {
        f>>x>>y>>c;

        v[x].push_back(make_pair(y,c));
        v[y].push_back(make_pair(x,-c));
    }
    q.push(start);
    viz[start]=1;
    bfs();
    g<<dist[stop];
}