2023年码蹄杯二赛C题 自动浇花机 题型:双指针

57 阅读1分钟

码题集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;
}

image.png