[scoi2005]扫雷

program bzoj1088;
var n,i,a1,a2,flag:longint;
    ans:int64;
	a,b:array[1..10000]of integer;
begin
 read(n);
 for i:=1 to n do read(b[i]);
 for a1:=0 to 1 do//确定前两个即可
  for a2:=0 to 1 do
   begin
    a[1]:=a1;a[2]:=a2;
	flag:=1;
	if b[1]<>a[1]+a[2] then flag:=0;
	for i:=3 to n do
	 begin
	  if flag=0 then break;
	  a[i]:=b[i-1]-a[i-1]-a[i-2];
	  if (a[i]>1)or(a[i]<0)  then 
	   begin
	    flag:=0;
		break;
	   end;
	 end;
	if b[n]<>a[n]+a[n-1] then flag:=0;//递推+判断最后是否合法
	ans:=ans+flag;
   end;
 writeln(ans);
end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值