TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  问题讨论与解答  统计信息与排名
  • 首页
  • 题库
  • P2912
  • 题目
  • P2912钢铁侠
    限制 : 时间限制 : 10000 MS   空间限制 : 165536 KB
    问题描述

    何老板最近很钟意一款名为钢铁侠的飞行游戏。游戏中有n块木板悬浮在空中,不同的木板悬浮的高度可能不同,每块木板上都有一定的金币。
    玩家可以任选一块木板作为钢铁侠飞行的起点,控制钢铁侠往右飞行。飞行时,钢铁侠会一直保持当前的飞行高度。当然,玩家可以选择让钢铁侠降落到比当前飞行高度低的木板上。每当钢铁侠降落到一块木板上,他就可以获得该木板上的金币。然后钢铁侠会以当前木板的高度继续往右飞行。
    游戏中还有两种特殊的木板:
    1.木板上有磁铁,钢铁侠从其上空经过时会被吸到该木板上,获得金币后以该木板的高度继续往右飞行(也就是经过时必须降落在该木板);
    2.木板上有弹簧,如果钢铁侠降落在上面,获得金币的同时会被向上弹起一定的高度t(假如该木板高度为h,钢铁侠降落后继续往右飞行的高度为h+t);
    现在何老板已知所有木板的信息,问他最多能得到多少金币?

    输入格式

    第一行,一个整数n
    接下来n行,从左往右依次描述每块木板的情况。
    第i行描述第i块木板,首先是三个整数h,g,v,其中h表示木板的高度,g表示该木板上金币的数量,v表示木板的种类。
    v=0,表示这是一块普通木板,
    v=1,表示这块木板上有磁铁,
    v=2,表示这块木板有弹簧,接下来一个整数t,表示向上弹起的高度。

    输出格式

    一个整数,表示能够得到的最多金币数。

    样例输入

    7
    14 25 0
    1 15 0
    12 20 2 20
    5 21 0
    20 18 1
    27 28 0
    23 30 0

    样例输出

    66

    提示

    样例说明:
    钢铁侠从1号板起飞,在3号和4号板降落。获得的金币为25+20+21=66
    数据范围:
    1<=n<=3000
    1<=h<=50000
    0<=g<=10000
    1<=t<=50000