• [1108] 打怪升级

  • 时间限制: 1000 ms 内存限制: 65535 K
  • 问题描述
  •   对于多数RPG游戏来说,除了剧情就是打怪升级。本题的任务是用最短的时间取得所有战斗的胜利。这些战斗必须按照特定的顺序进行,每打赢一场,都可能会获得一些补药,用来提升力量。本题只有两种补药:“加1药”和“乘2药”,分别让你的力量值加1和乘以2。
      战斗时间取决于你的力量。每场战斗可以用6个参数描述:p1, p2, t1, t2, w1, w2。如果你的力量小于p1,你将输掉战斗;如果你的力量大于p2,需要t2秒赢得战斗;如果力量位于p1和p2(包括p1和p2),战斗时间从t1线性递减到t2。比如p1=50,p2=75,t1=40,t2=15,你的力量为55,则战斗获胜需要35秒。注意,战斗时间可能不是整数。最后两个参数w1和w2分别表示战斗胜利后获得的“加1药”和“乘2药”的数量。注意,你不一定要立刻使用这些补药,可以在需要的时候再用,但不能在战斗中使用补药。
      按顺序给出每场战斗的参数,输出赢得所有战斗所需的最短总时间。战斗必须按顺序进行,且不能跳过任何一场战斗。
  • 输入
  • 输入最多包含25组测试数据。每组数据第一行为两个整数n和p(1<=n<=1000, 1<=p<=100),即战斗的场数和你的初始力量值。以下n行每行6个整数p1, p2, t1, t2, w1, w2(1<=p1<p2<=100, 1<=t2<t1<=100, 0<=w1,w2<=10),按顺序给出各场战斗的参数。输入结束标志为n=p=0。
  • 输出
  • 对于每组数据,输出最短总时间(单位:秒),保留两位小数。如果无解,输出“Impossible”(不含引号)。
  • 样例输入
  • 1 55 
    50 75 40 15 10 0 
    2 55 
    50 75 40 15 10 0 
    50 75 40 15 10 0 
    3 1 
    1 2 2 1 0 5 
    1 2 2 1 1 0 
    1 100 100 1 0 0 
    1 7 
    4 15 35 23 0 0 
    1 1 
    2 3 2 1 0 0 
    0 0
    
  • 样例输出
  • 35.00 
    60.00 
    41.00 
    31.73 
    Impossible
    
  • 提示
  • 来源
  • The Seventh Hunan Collegiate Programming Contest
  • 操作

显示春菜