题目大意
给定城市数量 n n n ,给定当前城市 a a a ,给定 n n n 个城市。
想知道从 a a a 城市距离 i i i 的城市能不能确切抓捕罪犯。
主体思路
-
距离 a a a 城市 i i i 的城市无非就两个: a + i a+i a+i 和 a − i a-i a−i 城市。
-
只要两个城市中有一个城市没有罪犯,就不能确定抓捕。
上代码
#include <cstdio>
using namespace std;
int n, a, num, b[107];
int main()
{
scanf ("%d%d", &n, &a);
for (int i = 1; i <= n; i++)
{
scanf ("%d", &b[i]);
// 一边输入一边判断有几个罪犯
if (b[i] == 1)
num++;
}
// 距离a城市i距离的有两个城市:a+i和a-i,判断是否出界
for (int i = 0; a + i <= n && a - i >= 1; i++)
{
// 只要这两个城市中有一个没有罪犯,就不能确定,减掉抓捕罪犯数
if (b[a + i] + b[a - i] == 1)
num--;
}
printf ("%d", num);
return 0;
}
完结撒花!