Description
双11到了,据说这2天会下红包雨,每个红包有不同的价值,小k好开心,但有个规则,就只能接掉落在他身旁的10米范围内的红包(0-10这11个位置)。小k想尽可能的多抢红包,这样就可以去买一个华为手机,小k每秒种只能在移动不超过一米的范围内接住红包。小k一开始站在5这个位置,因此在第一秒,他只能接到4,5,6这三个位置中其中一个位置上的红包。问小k最多可能接到多少价值的红包?
Input
第一行输入整数n,表示共有多少个红包,n<1000;
后面n行表示n个红包,每行有三个整数,分别表示红包掉落的位置、时间和价值。
Output
小k接到的红包价值之和。
Sample Input
8
3 18 5
7 13 7
1 8 10
2 7 13
10 20 1
3 17 8
10 2 123
3 13 45
Sample Output
81
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int dp[1010][12]; // dp[i][j]表示i时刻j位置开始出发,到最终时间点所获得的最大红包数
//两个数中的最大值
int max_2(int a, int b)
{
return (a>b) ? a :b;
}
//三个数中的最大值</