Subtask #1 全过了,Subtask #0 2个AC,3个MLE
求条悬关!
提交记录
damn码:
#include <bits/stdc++.h>
using namespace std;
int n;
int x;
vector<int> vc[50];
vector<int> g;
int w[40];
int f[40];
int pre[40],indx,maxv;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>w[i];
for(int i=1;i<n;i++)
for(int j=2;j<=n;j++)
{
int t;
cin>>t;
if(t) vc[j].push_back(i);
}
for(int i=1;i<=n;i++)
{
f[i]=w[i];
for(int x:vc[i])
{
if(f[x]+w[i]>f[i])
{
f[i]=f[x]+w[i];
pre[i]=x;
}
}
if(f[i]>maxv)
{
maxv=f[i];
indx=i;
}
}
g.push_back(indx);
while(pre[indx]!=0)
{
indx=pre[indx];
g.push_back(indx);
}
reverse(g.begin(),g.end());
for(int x:g)
cout<<x<<" ";
puts(" ");
cout<<maxv;
return 0;
}