#include<iostream>
using namespace std;
int c[100002][12];
int d[100002][12];
int main(){
int x,t,n;
while(scanf("%d",&n)!=EOF){
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
for(int i=1;i<=4;i++){
for(int j=0;j<=4-i;j++)
if(c[i][j]==1) c[i][j]=0;
for(int j=10;j>=5+i;j--)
if(c[i][j]==1)
c[i][j]=0;}
for(int i=1;i<=n;i++){
scanf("%d%d",&x,&t);
c[t][x]=1;}
for(int i=1;i<=4;i++){
for(int j=0;j<=4-i;j++)
if(c[i][j]==1)
c[i][j]=0;
for(int j=10;j>=5+i;j--)
if(c[i][j]==1)
c[i][j]=0;
}
for(int j=1;j<=10;j++) d[n][j]=c[n][j];
for(int i=n-1;i>=1;i--)
for(int j=1;j<=10;j++){
if(d[i+1][j]>d[i+1][j+1]&&d[i+1][j]>d[i+1][j-1])
d[i][j]=c[i][j]+d[i+1][j];
else if(d[i+1][j]<d[i+1][j+1]&&d[i+1][j+1]>d[i+1][j-1])
d[i][j]=c[i][j]+d[i+1][j+1];
else if(d[i+1][j]<d[i+1][j-1]&&d[i+1][j+1]<d[i+1][j-1])
d[i][j]=c[i][j]+d[i+1][j-1];
}
cout<<d[1][6]<<endl;
}
return 0;}
hdoj1176
最新推荐文章于 2021-08-27 23:31:50 发布