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,表示向上弹起的高度。

    输出格式

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

    样例输入 1

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

    样例输出 1

    66

    样例输入 2

    10
    26 17 0
    2 4 2 28
    2 11 0
    12 24 2 27
    21 27 1
    26 3 0
    28 1 2 9
    10 12 0
    14 3 1
    3 13 1

    样例输出 2

    97

    样例输入 3

    7
    7 29 2 29
    18 26 0
    11 9 0
    21 16 1
    1 7 0
    25 5 0
    29 28 2 25

    样例输出 3

    71

    提示

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