2700 问题 H: 蓝桥杯2022年第十三届决赛真题-搬砖

时间限制: 1s 内存限制: 256MB 提交: 1306 解决: 320
题目描述

这天,小明在搬砖。

他一共有 n 块砖,他发现第 i 砖的重量为 wi,价值为 vi。他突然想从这些砖中选一些出来从下到上堆成一座塔,并且对于塔中的每一块砖来说,它上面所有砖的重量和不能超过它自身的价值。

他想知道这样堆成的塔的总价值(即塔中所有砖块的价值和)最大是多少。

输入

输入共 n + 1 行,第一行为一个正整数 n,表示砖块的数量。

后面 n 行,每行两个正整数 wi , vi 分别表示每块砖的重量和价值。

输出
一行,一个整数表示答案。 
样例输入
5
4 4
1 1
5 2
5 5
4 3
样例输出
10
提示

选择第 1、2、4 块砖,从上到下按照 2、1、4 的顺序堆成一座塔,总价值为 4 + 1 + 5 = 10 。

对于 20% 的数据,保证 n ≤ 10;

对于 100% 的数据,保证 n ≤ 1000; wi ≤ 20; vi ≤ 20000 。

比赛公告

1. 对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。

2. 代码中允许使用 STL 类库。

3. main 函数结束必须返回 0。

4. 所有依赖的函数必须明确地在源文件中 #include

5. 提交时,注意选择使用C或C++语言。