免费馅饼
方法跟数塔一样。。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<debug.h>
int A[100010][11];
int fun1(int x,int y)
{
return x>y?x:y;
}
int fun2(int x,int y,int z)
{
return fun1(fun1(x,y),z);
}
int main( )
{
int N,i,j,k,point,t;
//Debug();
while(scanf("%d",&N),N)
{
k=0;
memset(A,0,sizeof(A));
for(i=0;i<N;i++)
{
scanf("%d%d",&point,&t);
A[t][point]++;
if(t>k)
k=t;
}
//printf("k:%d\n",k);
//printf("********");
for(i=k-1;i>=0;i--)
{//printf("********");
for(j=0;j<=10;j++)
{
if(j==0)
A[i][j]+=fun2(A[i+1][j],A[i+1][j+1],0);
else if(j==10)
A[i][j]+=fun2(A[i+1][j],0,A[i+1][j-1]);
else
A[i][j]+=fun2(A[i+1][j],A[i+1][j+1],A[i+1][j-1]);
}
}
//printf("********");
//system("pause");
printf("%d\n",A[0][5]);
}
// system("pause");
return 0;
}
posted on 2011-04-19 16:07 more think, more gains 阅读(193) 评论(0) 收藏 举报
浙公网安备 33010602011771号