记录编号 516716 评测结果 AAAAAAAAAA
题目名称 挖地雷 最终得分 100
用户昵称 GravatarHale 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2018-10-25 20:59:05 内存使用 0.36 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int f[201],w[201],c[201];
int m,n,k,ans;
bool mapp[201][201];
int main()
{ freopen("landmine.in","r",stdin);
  freopen("landmine.out","w",stdout);
  scanf("%d",&n);
  for (int i=1;i<=n;i++)
  { scanf("%d",&w[i]);
  }
  f[n]=w[n];
  int x,y;
  scanf("%d%d",&x,&y);
  while (true)
  { if(!x&&!y) break;
    mapp[x][y]=true;
    scanf("%d%d",&x,&y);
   } 
  for (int i=n-1;i>=1;i--)
  { int l=0,k=0;
    for (int j=i+1;j<=n;j++)
    if (mapp[i][j]) if (f[j]>l) {l=f[j];k=j;}
    f[i]=w[i]+l;
    c[i]=k;
  }
  for (int i=1;i<=n;i++)
  if (f[i]>ans){ans=f[i];k=i;}
  cout<<k;
  k=c[k];
  while (k!=0)
  { cout<<"-"<<k;
    k=c[k];
  }
  cout<<endl;
  printf("%d",ans);
  return 0;
}