Pagini recente » Cod sursa (job #312427) | Cod sursa (job #2387271) | Cod sursa (job #1834883) | Cod sursa (job #2093445) | Cod sursa (job #67540)
Cod sursa(job #67540)
#include<stdio.h>
#include<vector>
#define vi vector <int>
#define pb push_back
#define vii vector <int> :: iterator
const int maxn = 30001;
using namespace std;
int m;
int x;
int y;
int x1;
int y1;
int n;
int c;
int st[maxn];
bool ver[maxn];
int i;
int j;
int l;
int cos[maxn];
vi vect[maxn];
vi cost[maxn];
int main()
{
freopen("sate.in","r",stdin);
freopen("sate.out","w",stdout);
scanf("%d %d %d %d",&n,&m,&x,&y);
for(i = 1;i <= n; ++i)
{
scanf("%d %d %d",&x1,&y1,&c);
vect[x1].pb(y1);
cost[x1].pb(c);
vect[y1].pb(x1);
cost[y1].pb(-c);
}
i = 1;
l = 1;
st[1] = x;
for(;i;++i)
{
vii it;
vii it1;
for(it = vect[st[i]].begin(),it1 = cost[st[i]].begin();it != vect[st[i]].end(); ++it,++it1)
{
int x = *it;
if (!ver[*it])
{
st[++l] = *it;
cos[*it] = cos[st[i]] + *it1;
ver[*it] = 1;
}
}
if (ver[y]) break;
}
printf("%d\n",cos[y]);
return 0;
}