#include<cctype>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<queue>
#include<stack>
#include<set>
#include<map>
#define REP(i,a,b) for (i=(a);i<=(b);i++)
#define CLEAR(a) memset((a),0,sizeof((a)))
using namespace std;
typedef long long LL;
const double pi = acos(-1.0);
const int maxn = 1e5 + 10, maxm = 11;;
const int inf = 99999999;
int val[maxn][maxm], dp[maxn][maxm];
int n, x, t, time;
void init();
void outp();
int main()
{
while (~scanf("%d", &n) && n)
{
init();
int ans = 0;
for (int i = time; i >= 0; i--)
{
for (int j = 0; j < 11; j++)
{
if (j == 0)
{
dp[i][j] = max(dp[i + 1][j + 1], dp[i + 1][j]) + val[i][j];
}
else if (j == 10)
{
dp[i][j] = max(dp[i + 1][j - 1], dp[i + 1][j]) + val[i][j];
}
else
{
dp[i][j] = max(dp[i + 1][j], max(dp[i + 1][j - 1], dp[i + 1][j + 1])) + val[i][j];
}
}
}
outp();
}
return 0;
}
void init()
{
memset(dp, 0, sizeof(dp));
memset(val, 0, sizeof(val));
time = 0;
for (int i = 0; i < n; i++)
{
cin >> x >> t;
val[t][x]++;
if (t > time)
{
time = t;
}
}
}
void outp()
{
printf("%d\n", dp[0][5]);
}
hdu 1176
最新推荐文章于 2018-11-10 23:38:16 发布