首页 > 代码库 > BZOJ 1088

BZOJ 1088

真是智商不够,

智商题;。。。。

假如:第1,2个格子已知,然后根据第二列的情况,就可以把所有满足的情况推出来,又萌萌哒。。

           无耻攒字数:

     

#include<stdio.h>
using namespace std;
#define N 11111
int l[N],r[N],n;
int pan(){
    int temp;
    for (int i=2;i<=n;i++){
        temp=r[i]-l[i-1]-l[i];
        if (temp<0||temp>1) return 0;
        l[i+1]=temp;
    }
    if (temp) return 0;
    return 1;
}
int main()
{
    scanf("%d",&n);
    int ans=0;
    for (int i=1;i<=n;i++) scanf("%d",&r[i]);
     if (n==1&&r[1]<=1) {printf("1\n");return 0;}
    for (int i=0;i<2;i++)
    for (int j=0;j<2;j++)
    {
       l[1]=i;l[2]=j;
       if (r[1]!=(l[1]+l[2])) continue;
        ans+=pan();
    }
    
    printf("%d\n",ans);
    return 0;
}