链接: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;
}

  

05-11 14:04