Cod sursa(job #2812416)

Utilizator alexdmnDamian Alexandru alexdmn Data 4 decembrie 2021 14:58:21
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <queue>

using namespace std;
vector <int> v[30005], cost[30005];
int sum=0, cs=0, s, t, f[30005], ok=0;
int dfs(int x, int y)
{
	f[x]=1;
	sum+=cs;
	int ca=cs;;
	if(x==y)
	{
		ok=1;
		return 0;
	}
	if(x==s)
        return 0;
	for(int i=0;i<v[x].size();i++)
	{
		if(f[v[x][i]]==0)
		{
			cs=cost[x][i];
			dfs(v[x][i], y);
		}
	}
	if(ok==0)
		sum-=ca;
	f[x]=0;
	return 0;
}
int main()
{

    int n,m,a,c,b;
	cin>>n>>m>>s>>t;

	for(int i=0;i<m;i++)
	{
		cin>>a>>b>>c;
		v[a].push_back(b);
		v[b].push_back(a);
		cost[a].push_back(c);
		cost[b].push_back((-1)*c);
	}
	dfs(s, t);

	cout<<sum;

    return 0;
}