Cod sursa(job #777775)

Utilizator repp4raduRadu-Andrei Szasz repp4radu Data 13 august 2012 13:11:17
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <vector>
#include <queue>

#define MAX 30005

using namespace std;

vector< pair <int , int > > v[MAX];
int dist[MAX], n, m, x, y;

void bfs()
{
    int nod, dest;
    dist[x] = 0;
    queue<int> q; q.push(x);
    while(!q.empty())
    {
        nod = q.front(); q.pop();
        for(int i = 0; i < v[nod].size(); i++)
        {
            dest = v[nod][i].first;
            if(!dist[dest])
            {
                dist[dest] = dist[nod] + v[nod][i].second;
                q.push(dest);
            }
        }
        if(dist[y])
            break;
    }
}

int main()
{
    int a, b, c;
    ifstream in("sate.in"); in>>n>>m>>x>>y;
    for(int i = 1; i <= m; i++)
    {
        in>>a>>b>>c;
        v[a].push_back(make_pair(b, c));
        v[b].push_back(make_pair(a, -c));
    } in.close();
    bfs();
    ofstream out("sate.out"); out<<dist[y]; out.close();
    return 0;
}