題目敘述

在 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;
}