Cod sursa(job #1080987)

Utilizator costel93FMI - Dumea Eduard Constantin costel93 Data 13 ianuarie 2014 03:51:55
Problema Sate Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

typedef struct muchie{int x; int val;};
muchie aux;

vector<muchie> v[30005];
queue<int> q;

int dist[30005], n, m, x, y, nod1, nod2, d, i;

int main()
{

    ifstream fin("sate.in");
    ofstream fout("sate.out");

    fin>>n>>m>>x>>y;
    for(i=1;i<=m;i++)
    {
        fin>>nod1>>nod2>>d;
        aux.x=nod2;
        aux.val = d;
        v[nod1].push_back(aux);
        aux.x=nod1;
        aux.val = -d;
        v[nod2].push_back(aux);
    }

    q.push(x);
    while(!q.empty())
    {
        int nr=q.front(), l=v[q.front()].size();
        q.pop();
        for(i=0;i<l;i++)
        {
            if( dist[v[nr][i].x] == 0 )
            {
                    q.push(v[nr][i].x);
                    dist[v[nr][i].x] = v[nr][i].val + dist[nr];
                    if( dist[y]!=0 )
                    {
                        fout<<dist[y];
                        return 0;
                    }
            }
        }
    }

    fout<<dist[y];

     return  0;
  }