[CF680B] Bear and Finding Criminals
題目敘述
在 Bearland 上面有 $n$ $(1\le n\le 100)$ 個城市,編號為 $1$ 到 $n$。這些城市依照編號排成一列。 Limak 住在編號為 $a$ 的城市裡面,在每一個城市裡面有 $t_i$ $(t_i\in{0, 1})$ 個罪犯。
Limak 有一台機器 BCD (Bear Criminal Detector),這台機器可以告訴 Limak 從城市 $a$ 每個距離分別有多少個罪犯,然而 Limak 必須完全確定該距離的罪犯所在的城市才能夠準確地抓到他們。
請幫忙 Limak 計算他總共可以抓到多少罪犯。
題解
對於距離 $i$,若每一個距離 $i$ 的城市裡都有罪犯的話才能夠抓到他們。
參考程式碼
// by tmt514
#include <algorithm>
#include <cstdio>
using namespace std;
int main(void) {
int n, a, t[105];
scanf("%d%d", &n, &a);
--a;
for(int i=0;i<n;i++) scanf("%d", &t[i]);
int p=0;
for(int i=0;i<n;i++) {
bool f1 = (a-i<0);
bool f2 = (a+i>=n);
if ((f1 || t[a-i]) && (f2 || t[a+i])) {
p += (!f1) + (i>0 && !f2);
}
}
printf("%d\n", p);
return 0;
}