吴添添 • 1年前
using namespace std; int n,w[20],vis[20],a[20],b[20],t[20]; int m,v; int maxn; int isOK() {
int sum=0;
for(int i=1;i<=n;i++)
{
sum+=w[i];
if(sum>v) return 0;
}
return 1;
} void dfs(int k) {
if(k==m+1)
{
int ans=0;
memset(w,0,sizeof(w));
for(int i=1;i<=m;i++)
{
if(vis[i]==1)
{
w[a[i]]+=t[i];
w[b[i]]-=t[i];
ans+=(b[i]-a[i])*t[i];
}
}
if(isOK())
{
maxn=max(maxn,ans);
}
return ;
}
dfs(k+1);
vis[k]=1;
dfs(k+1);
vis[k]=0;
return ;
} int main() {
cin>>n>>m>>v;
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i]>>t[i];
}
dfs(1);
cout<<maxn;
}
评论: