SP2272 DESERT - Crossing the Desert

题目描述

在一个二维平面沙漠中,有 $n(1\le n\le 20)$ 个绿洲,给定绿洲的坐标,每一个绿洲只有无限多的水源可以获取使用,食物可以从点 $1$ 带过来存放,但是绿洲本身没有食物可以获取。每走 $1$ 单位长度将会损耗 $1$ 单位水和食物,身上负重最多 $W$ 。你可以携带一部分食物放置在绿洲,然后走回点 $1$ 再带食物过来存放。问要走到点 $n$ ,最少要从点 $1$ 中购买多少单位食物。

输入格式

题目包含**多组测试数据**。 每组测试数据第一行两个整数 $n,W$ ,表示绿洲的个数和负重上限。 接下来 $n$ 行,每行两个整数 $x_i,y_i$ ,表示第 $i$ 个绿洲的坐标。 当 $n=W=0$ 时结束。

输出格式

对于第 $i$ 组数据,每组数据输出一行,先输出 "Trail i: "。 如果能成功从点 $1$ 到达点 $n$ ,设最少要从点 $1$ 中购买 $d$ (整数)单位食物,则输出 "d units of food"。否则输出 "Impossible"(均不带引号)。 ### 输入输出样例 #### 输入#1 ``` 4 100 10 -20 -10 5 30 15 15 35 2 100 0 0 100 100 0 0 ``` #### 输出#1 ``` Trial 1: 136 units of food Trial 2: Impossible ```