Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!
我的博客:<但凡.
我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》
欢迎点赞,关注!
1、题目
2、题解
#include<iostream>
using namespace std;
const int N = 10000;
int n = 0;
int a[N], b[N];
int check1()//第一个位置不是雷
{
a[1] = 0;
for (int i = 1;i <= n;i++)
{
a[i + 1] = b[i] - a[i] - a[i - 1];
if (a[i + 1] >= 2 || a[i + 1] < 0) return 0;
}
//判断特殊情况
if (a[n + 1] == 0) return 1;
else return 0;
}
int check2()//第一个位置不是雷
{
a[1] = 1;
for (int i = 1;i <= n;i++)
{
a[i + 1] = b[i] - a[i] - a[i - 1];
if (a[i + 1] >= 2 || a[i + 1] < 0) return 0;
}
//判断特殊情况
if (a[n + 1] == 0) return 1;
else return 0;
}
int main()
{
cin >> n;
for (int i = 1;i <= n;i++)
{
cin >> b[i];
}
int ret = 0;
ret += check1();
ret += check2();
cout << ret;
return 0;
}
好了,今天的内容就分享到这,我们下期再见!