Pagini recente » Cod sursa (job #1173822) | Cod sursa (job #550306) | Cod sursa (job #2962422) | Cod sursa (job #31699) | Cod sursa (job #1309695)
#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;
return ;
}
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;
}
}
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;
}