Cod sursa(job #796709)

Utilizator SpiriFlaviuBerbecariu Flaviu SpiriFlaviu Data 12 octombrie 2012 11:36:52
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#include <utility>

using namespace std;

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

vector<pair<int, int> > v[30001];

int cost[30001];
bool visited[30001];
int n,m;

void dfs(int x)
{
    for(unsigned int i=0;i<v[x].size();i++)
        if(cost[x]+v[x][i].second<cost[v[x][i].first])
        {
            cost[v[x][i].first]=cost[x]+v[x][i].second;
            dfs(v[x][i].first);
        }
}


int main()
{
    int a,b,x,y,c;
    fin>>n>>m>>a>>b;
    for(int i=1;i<=n;i++)
        cost[i]=999999999;
    for(int i=1;i<=m;i++)
    {
        fin>>x>>y>>c;
        v[x].push_back(make_pair(y,c));
        v[y].push_back(make_pair(x,-c));
    }

    cost[a] = 0;
    dfs(a);

    fout<<cost[b]<<'\n';



    fin.close();
    fout.close();
    return 0;
}