Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
73648 | zzy2023 | 金矿 | C++ | 通过 | 100 | 0 MS | 308 KB | 1219 | 2023-04-08 09:52:33 |
#include<bits/stdc++.h> using namespace std; int a[1001][3]={0},b[1001]={0},g[1001][1001]; inline bool isNumber(char c) { return(c>='0'&&c<='9'); } void init() { int i,n; char c; cin>>n; for(i=1;i<=n;++i) { cin>>b[i]; } for(i=1;i<=n;i++) { int x; cin>>x; do { int num=0; while(isNumber(c=getchar())) { num=num*10+c-'0'; } g[x][num]=1; g[num][x]=1; } while(c!='\n'); } for(i=1;i<=n;i++) { a[i][0]=b[i]; a[i][1]=i; } } void Max() { int i,j,max,l; for(i=10;i>=1;i--) { max=0; l=i; for(j=i+1;j<=10;j++) if(g[i][j]&&a[j][0]>max) { max=a[j][0]; l=j; } a[i][0]+=max; a[i][1]=l; } max=0; l=1; for(i=1;i<=10;i++) if(a[i][0]>=max) { max=a[i][0]; l=i; } cout<<max<<endl; } int main() { init(); Max(); return 0; }