Alice, Bob and Candies
题意:Alice是从左边开始吃,而Bob从右边开始吃,两个人轮流吃,Alice先开始,下一次吃的人要比上一次吃的人多,最后求出两个人每个人吃了多少颗糖果,以及轮流了多少次;
涉及知识点:
- 简单模拟
solution:
- 做 法 较 多 做法较多 做法较多
std:
#include <iostream>
using namespace std;
int n,t;
const int N = 1010;
int a[N];
int Left,Right,ans;
int main()
{
cin >> t;
while(t --)
{
cin >> n;
for(int i = 1;i <= n;i ++)cin >> a[i];
Left = 0,Right = 0,ans = 0;
int i = 1,j = n,aim = 0;
while(1)
{
int res = 0;
int k;
for(k = i;k <= j;k ++){
res += a[k];
if(res > aim){
break;
}
}
if(!res)break;
if(res > aim){
aim = res;
Left += res;
i = k + 1;
ans++;
}
else{
Left += res;
ans++;
break;
}
res = 0;
for(k = j;k >= i;k --){
res += a[k];
if(res > aim){
break;
}
}
if(!res)break;
if(res > aim){
aim = res;
Right += res;
j = k - 1;
ans++;
}
else{
Right += res;
ans++;
break;
}
}
cout << ans << " " << Left << " " << Right << endl;
}
return 0;
}