Pagini recente » Cod sursa (job #1908981) | Cod sursa (job #2101321) | Cod sursa (job #1660598) | Cod sursa (job #2817644) | Cod sursa (job #1316926)
#include <stdio.h>
#include <vector>
int adj[30001][201],cost[30001][201],p1[30001];
int n,m,x,y;
bool ver[30001];
bool as=0;
void dfs(int sat,int counter)
{
ver[sat]=1;
if(sat==y)
{
printf("%d\n",counter);
as=1;
return;
}
for(int i=0;i<p1[sat];i++)
{
if(ver[adj[sat][i]]==0)
{
dfs(adj[sat][i],counter+cost[sat][i]);
if(as==1) return;
}
}
ver[sat]=0;
}
int main()
{
freopen ("sate.in","r",stdin);
freopen ("sate.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&x,&y);
int py,px,c;
int temp;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&px,&py,&c);
if(px>py)
{
temp=px;
px=py;
py=temp;
}
adj[px][p1[px]]=py;
cost[px][p1[px]]=c;
p1[px]++;
adj[py][p1[py]]=px;
cost[py][p1[py]]=-c;
p1[py]++;
}
dfs(x,0);
}