Pagini recente » Cod sursa (job #2054341) | Cod sursa (job #1258734) | Cod sursa (job #67772)
Cod sursa(job #67772)
#include<stdio.h>
long long m, suma;
int n, x, y;
typedef struct
{
int i, j;
long d;
} distanta;
distanta v[30001];
void citire()
{
freopen("sate.in","r",stdin);
scanf("%d %lld %d %d", &n, &m, &x, &y);
for (long i=1; i<=m; i++)
scanf("%d %d %ld",&v[i].i, &v[i].j, &v[i].d);
}
void parcurgere()
{
long long i, p, pr, ul;
for (i=1; i<=m; i++)
if (v[i].i==x || v[i].j==x)
{ p=i; break;}
if (v[p].i==x) { pr=v[p].i; ul=v[p].j;}
else { pr=v[p].j; ul=v[p].i;}
if (pr<ul) suma+=v[p].d;
else suma-=v[p].d;
while (ul!=y)
{
v[p].i=v[p].j=0;
for (i=1; i<=m; i++)
if (v[i].i==ul || v[i].j==ul)
{ p=i; break;}
pr=ul;
if (v[p].i==pr) ul=v[p].j;
else ul=v[p].i;
if (pr<ul) suma+=v[p].d;
else suma-=v[p].d;
}
freopen("sate.out","w",stdout);
printf("%lld",suma);
}
int main()
{
citire();
parcurgere();
return 0;
}