#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define INF 0x3f3f3f3f
int dp[12][100050],a[12][100050];
int max(int a,int b,int c)
{
if(a>=b&&a>=c)
return a;
if(b>=c&&b>=a)
return b;
if(c>=a&&c>=b)
return c;
}
int main()
{
int i,j,k,n,t,x,maxm;
while(scanf("%d",&n)==1)
{
if(n==0)
break;
memset(a,0,sizeof(a));
for(i=0;i<12;i++)
for(j=0;j<100;j++)
dp[i][j]=-INF;
for(i=0;i<n;i++)
{
scanf("%d%d",&x,&t);
a[x][t]++;
}
dp[4][1]=a[4][1];
dp[5][1]=a[5][1];
dp[6][1]=a[6][1];
for(i=1;i<100002;i++)
{
for(j=0;j<=10;j++)
{
if(j==0)
dp[j][i+1]=max(dp[j][i],dp[j+1][i],-INF)+a[j][i+1];
else if(j==10)
dp[j][i+1]=max(dp[j][i],dp[j-1][i],-INF)+a[j][i+1];
else
dp[j][i+1]=max(dp[j][i],dp[j+1][i],dp[j-1][i])+a[j][i+1];
}
}
for(i=0,maxm=-INF;i<=10;i++)
{
if(dp[i][100000]>maxm)
maxm=dp[i][100000];
}
printf("%d\n",maxm);
}
return 0;
}
hdu1176 免费馅饼
最新推荐文章于 2021-05-20 07:57:33 发布