Pagini recente » Cod sursa (job #1001050) | Cod sursa (job #2104444) | Cod sursa (job #326089) | Cod sursa (job #1939056) | Cod sursa (job #1504189)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("sate.in");
ofstream fout ("sate.out");
int n, m, si, sf, i, x, y, c, ct, viz[30001];
struct nod
{
int info;
int dist;
nod *urm;
};
nod *a[30001], *p;
void add (nod *&prim, int x, int c)
{
p=new nod;
p->info=x;
p->dist=c;
p->urm=prim;
prim=p;
}
void DFS (int x)
{
nod *p;
viz[x]=1;
if (x==sf) return;
for (p=a[x]; p!=0; p=p->urm)
{
if (viz[p->info]==0)
{
if (x<p->info) ct+=p->dist;
else ct-=p->dist;
DFS (p->info);
}
}
}
int main()
{
fin >> n >> m >> si >> sf;
for (i=1; i<=m; i++)
{
fin >> x >> y >> c;
add (a[x], y, c);
add (a[y], x, c);
}
DFS(si);
fout << ct;
}