Cod sursa(job #1814566)

Utilizator BogdanNeghinaNeghina Bogdan BogdanNeghina Data 24 noiembrie 2016 10:56:39
Problema Sate Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
struct elem
{
    int nod,cost;
};
vector <elem> v[30005];
int d[30005],n,m,s,f;
void citire ()
{
    int x,y,c;
    fin>>n>>m>>s>>f;
    for(int i=1;i<=m;i++)
    {
        fin>>x>>y>>c;
        elem t;
        t.nod=y;
        t.cost=c;
        v[x].push_back(t);
        t.nod=x;
        t.cost=-c;
        v[y].push_back(t);
    }
}
void bfs (int x)
{
    int p=1,u=1,c[30005];
    c[p]=x;
    d[x]=-1;
    while(p<=u)
    {
        x=c[p];
        p++;
        for(int i=0;i<v[x].size();i++)
        {
            elem t;
            t=v[x][i];
            if(d[t.nod]==0)
            {
                d[t.nod]=d[x]+t.cost;
                u++;
                c[u]=t.nod;
            }
        }
    }

}
int main()
{
    citire();
    bfs(s);
    fout<<d[f]+1;
    return 0;
}