Pagini recente » Cod sursa (job #3196167) | Cod sursa (job #279081) | Cod sursa (job #2327855) | Cod sursa (job #2183915) | Cod sursa (job #1416229)
#include <fstream>
#include <iostream>
#include <vector>
#define nmax 30005
#define mmax 100030
# define nod first
# define value second
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector <pair <int,int> > v[nmax];
int cost[mmax],i,n,y,m,x,z,source,dest;
bool seen[nmax];
void dfs (int x)
{
seen[x]=1;
for(i=0;i<v[x].size();i++)
{ y=v[x][i].nod;
if(!seen[y])
{
cost[y]=cost[x]+v[x][i].value;
dfs(y);
if(y==dest)return;
}
}
}
int main ()
{
f>>n>>m;
f>>source>>dest;
for(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));
}
cost[source]=0;
dfs(source);
g<<cost[dest];
return 0;
}