题解 CF6C 【Alice, Bob and Chocolate】

没错这道 C 题是橙难度


我们可以统计前缀和与后缀和,在找后缀和的同时标记哪块糖果是有争议的(说白了就是最后一个被吃的糖),然后比较吃到这块糖 a,b 两人所用的时间,根据题目要求决定这个糖谁来吃。

#include<bits/stdc++.h>
using namespace std;
int t[100005],qa[100005],qb[100005],mid;
int main() {
	int n,a,b;
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>t[i];
		qa[i]=qa[i-1]+t[i]; 
	}
	for(int i=n;i>=1;i--) {
		qb[i]=qb[i+1]+t[i];
		if(qb[i]>qa[n]/2&&!mid) mid=i;//标记
	}
	if(qa[mid-1]>qb[mid+1])
		cout<<mid-1<<' '<<n-mid+1;
	else
		cout<<mid<<' '<<n-mid; //绅士风范
	return 0;
}
原文地址:https://www.cnblogs.com/ahawzlc/p/12837266.html