Pagini recente » Cod sursa (job #1150270) | Cod sursa (job #1902477) | Cod sursa (job #1380220) | Cod sursa (job #2081523) | Cod sursa (job #1416191)
#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])
{
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;
}