#include<iostream>
#include<cstdio>
using namespace std;
int maxl=0,tar,sum[25],n,i,j,a,book[25][25],back[25]={0},ans[25];
void out(int i){
ans[i]=i;
if(back[i]==0) return;
out(back[i]);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>sum[i];
}
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
cin>>a;
book[i][j]=a;
}
}
for(i=1;i<=n;i++){
for(j=1;j<i;j++){
if(book[j][i]){
if(sum[j]>maxl){
maxl=sum[j];
tar=i;
}
back[i]=j;
}
}
sum[i]+=maxl;
}
maxl=0;
for(int i=1;i<=n;i++){
if(sum[i]>maxl){
maxl=sum[i];
tar=i;
}
}
out(tar);
for(int i=1;i<=n;i++){
if(ans[i]!=0){
cout<<ans[i]<<' ';
}
}
cout<<endl<<maxl;
return 0;
}
有3个测试点没过,求daolao指点:)