链接: 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;
- }
来源: http://www.bubuko.com/infodetail-2945453.html