题目链接:
https://codeforces.com/contest/24/problem/A
#include <iostream>
#include <cstring>
using namespace std;
static const int MAXN=100+10;
static const int MAXM=200+10;
int h[MAXN],e[MAXM],ne[MAXM],f[MAXM],idx;
int d[MAXN],pre[MAXN];
void add(int u,int v,int w)
{
e[idx]=v,f[idx]=w,ne[idx]=h[u],h[u]=idx++;
}
bool vis[MAXM];
int n,sum,res;
void dfs(int u)
{
for(int i=h[u];~i;i=ne[i])
{
int v=e[i];
if(vis[i]) continue;
vis[i]=vis[i^1]=true;
dfs(v);
res+=f[i];
}
}
int main()
{
memset(h,-1,sizeof(h));
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,0); add(v,u,w);
sum+=w;
}
dfs(1);
printf("%d\n",min(res,sum-res));
return 0;
}
版权声明:本文为inv00ker原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。