Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
141103 | 林泽豪 | 金矿 | C++ | 解答错误 | 80 | 0 MS | 264 KB | 619 | 2024-04-02 13:27:03 |
#include<bits/stdc++.h> using namespace std; const int N=1010; int w[N],f[N],maxn; bool l[N][N]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>w[i]; f[i]=w[i]; } for(int i=1;i<=n;i++){ int k=0,m; cin>>m; string s; getline(cin,s); for(int j=0;j<s.size();j++){ if('0'<=s[j]&&s[j]<='9') k=k*10+(s[j]-'0'); else{ l[m][k]=l[k][m]=1; k=0; } } if(k!=0){ l[m][k]=l[k][m]=1; k=0; } } for(int i=n-1;i>=1;i--){ for(int j=i+1;j<=n;j++){ if(l[i][j]){ f[i]=max(f[i],f[j]+w[i]); } maxn=max(maxn,f[i]); } } cout<<maxn; }