Cod sursa(job #1504189)

Utilizator VladuZ1338Vlad Vlad VladuZ1338 Data 17 octombrie 2015 14:52:41
Problema Sate Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#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;
}