链接:https://ac.nowcoder.com/acm/contest/332/D
题意:
小B喜欢美食。
现在有n个美食排成一排摆在小B的面前,依次编号为1..n,编号为i的食物大小为 a[i] ,即足够小B吃 a[i] 口。
小B每次会吃两口,这两口要么是编号相同的美食,要么是编号之差的绝对值为1的美食。
小B想知道,她最多能吃几次?
思路:
偶数全吃,单数吃到剩最后一个,下一个有就一起吃。
代码:
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 1e5 + 10; int a[MAXN]; int main() { int n; cin >> n; for (int i = 1;i <= n;i++) cin >> a[i]; int w = 1; LL res = 0; while (w <= n) { if (a[w] % 2 == 0) { res += a[w] / 2; } else { if (w == n) { res += a[w] / 2; break; } res += a[w] / 2; if (a[w + 1] > 0) { res++; a[w + 1]--; } } w++; } cout << res << endl; return 0; }