题目描述
在一个地图上有n个地窖(n<=200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干的地窖之后又回到原来地窖的路径。某人可以从任意处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷方案,使他能挖到最多的地雷。
输入
n //地窖的个数
w1,w2,w3,…,wn //每个地窖中的地雷数
x1,y1 //表示从x1可到y1,x1<y1
x2,y2
…
0,0 //表示输入结束
输出
k1-k2-…-kv //挖地雷的顺序
max //最多挖出的地雷数
样例输入
6
5 10 20 5 4 5
1 2
1 4
2 4
3 4
4 5
4 6
5 6
0 0
样例输出
3-4-5-6
34
#include<bits/stdc++.h>
using namespace std;
int n;
int dl[2005];
int t[2001][2001];
int f[2005];
int pre[2005];
void print(int po){
if(pre[po]==