Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
73589 | 陆彦哲 | 金矿 | C++ | 运行超时 | 60 | 775 MS | 272 KB | 755 | 2023-04-08 08:15:37 |
#include<bits/stdc++.h> using namespace std; long long a[10010],dp[10010]; bool book[1010][1010]; long long ans; int main(){ int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++){ char ch; int x; cin>>x; if(i!=x)book[i][x]=1; while(true){ ch=getchar(); if(ch==' '){ cin>>x; if(i!=x)book[i][x]=1; } if(ch=='\n')break; } } for(int i=1;i<=n;i++)dp[i]=a[i]; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(book[i][j]==1)dp[j]=max(dp[j],dp[i]+a[j]); ans=max(ans,dp[j]); } } cout<<ans<<endl; return 0; }