没错这道 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;
}