加强数据
查看原帖
加强数据
996134
ZG_____yeszy楼主2024/11/24 10:37
#include<bits/stdc++.h>
using namespace std;
long long a[21],b[21][21],n,ans=0,c[21],c1[21],ans1=0,k,k1;
void dfs(int x){
	k1++;
	c1[k1]=x;
	ans1+=a[x];
	if(ans1>ans){
		ans=ans1;
		k=k1;
		for(int i=1;i<=k;i++) c[i]=c1[i]; 
	}
	for(int i=x+1;i<=n;i++) if(b[x][i]==1) dfs(i);
	c1[k1]=0;
	k1--;
	ans1-=a[x];
} 
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) cin>>b[i][j];
	for(int i=1;i<=n;i++) dfs(i);
	for(int i=1;i<=k;i++) cout<<c[i]<<" ";
	cout<<endl<<ans;
	return 0;	
}
2024/11/24 10:37
加载中...