CF1352D

题目简化和分析:

这题可以直接按照题意进行模拟,当然有些细节需要注意。

翻译的不足:这里的回合指任意一个人吃掉都算,而不是双方一个回合,最后一个人即使不满足也算一个回合。

我们可以采用两个指针模拟两个人吃的位置,并按照题意进行模拟即可!

Solution:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n;
int a[1010];
int main()
{
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		for(int i=1;i<=n;++i) scanf("%d",&a[i]);
		int l=1,r=n;
		int ans=0,lans=0,rans=0,lres=0,rres=0;
		while(l<=r){
			lres=0;
			while(lres<=rres&&l<=r){
				lres+=a[l];
				++l;
			}
			++ans;
			lans+=lres;
			if(l>r) break;
			rres=0;
			while(rres<=lres&&l<=r){
				rres+=a[r];
				--r;
			}
			++ans;
			rans+=rres;
			if(l>r) break;
		}
		printf("%d %d %d\n",ans,lans,rans);
	}
}
posted @ 2022-08-10 21:41  RVG  阅读(24)  评论(0)    收藏  举报