Cod sursa(job #1395908)

Utilizator lolmanDomuta Dariu lolman Data 21 martie 2015 18:52:10
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <vector>
#include <fstream>
#define nmax 30001
#define inf 20000000
#define node first
#define value second
using namespace std;

vector <pair<int, int> > v[nmax];
int n,m,y,sol,x,cost[nmax],source,dest,z,j;
bool seen[nmax];

ifstream f("sate.in");
ofstream g("sate.out");

void dfs(int x)
     {
        seen[x]=true;

        for (int i =0;i<v[x].size();i++)
                {
                    int y=v[x][i].node;
                    if (!seen[y])
                    {
                        if (cost[y]>cost[x]+v[x][i].value)
                             {
                                 cost[y]=cost[x]+v[x][i].value;
                             }

                        dfs(y);
                        if (y==dest) return;
                    }
                }
     }
int main()
{


    f>>n>>m>>source>>dest;
    for(int i=1;i<=m;i++)
       {
           f>>x>>y>>z;
           v[x].push_back(make_pair(y,z));
           v[y].push_back(make_pair(x,-z));
       }
    for (j=1;j<=n;j++) cost[j]=inf;
    cost[source]=0;
    dfs(source);

    g<<cost[dest];
    return 0;
}