Cod sursa(job #947057)

Utilizator predatorGigi Valoare predator Data 6 mai 2013 17:01:19
Problema Sate Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
#include<vector>
#define NM 31000
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
struct el{int cos,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;
	if(sol)
		return;
	if(x==y)
		sol=cost;
	for(int i=0;i<v[x].size();++i)
		if(!viz[v[x][i].des])
		{
			cost+=v[x][i].cos;
			dfs(v[x][i].des);
			cost-=v[x][i].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;
}