码题集OJ-自动浇花机 (matiji.net)
思想
首先因为左指针的速度是右指针的二倍,所以左指针可以走的路程也是右指针的二倍。
如果左指针走的路程小于右指针的二倍,那就让左指针朝右挪,否则就让右指针朝左挪。
#include<bits/stdc++.h>
using namespace std;
int a[1010];
int n;
int cnt;
int main()
{
cin >> n;
for (int i = 0; i < n; i++)cin >> a[i];
int left = 0, right = n - 1;
int leftsum = 0, rightsum = 0;
while (left <= right)
{
if (leftsum < 2 * rightsum)
{
leftsum += a[left];
left++;
cnt++;
}
else
{
rightsum += a[right];
right--;
}
}cout << cnt;
return 0;
}