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);
}
}

浙公网安备 33010602011771号