Cod sursa(job #947066)

Utilizator predatorGigi Valoare predator Data 6 mai 2013 17:11:17
Problema Sate Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<vector>
#define NM 31000
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
struct el{int cos; int des;};
el l;
vector<el> v[NM];
int a,b,i,n,m,x,y,sol,cost,viz[NM];
void dfs(int x)
{
	viz[x]=1;
	vector<el>::iterator it;
	if(sol)
		return;
	if(x==y)
		sol=cost;
	for(it=v[x].begin();it!=v[x].end();++it)
		if(!viz[(*it).des])
		{
			cost+=(*it).cos;
			dfs((*it).des);
			if(sol)
				return ;
			cost-=(*it).cos;
		}
	viz[x]=0;
}
int main()
{
	f>>n>>m>>x>>y;
	while(m--)
	{
		f>>a>>l.des>>l.cos;
		if(a>l.des)
			swap(a,l.des);
		v[a].push_back(l);
		l.cos=-l.cos;
		swap(a,l.des);
		v[a].push_back(l);
	}
	cost=0;
	dfs(x);
	g<<sol;
	return 0;
}