Description

一个n,代表一共有多少个数,接下来给你n个数,让你求一个m,使得前m个数的和大于等于n个数总和的一半.

Input

一个n(0<n<10000)代表一共有多少个数,接下来n个数(1~300)。单组输入输出

Output

输出m

Sample Input 1 

4
1 3 2 1

Sample Output 1

2

Sample Input 2 

6
2 2 2 2 2 2

Sample Output 2

3

简直太水了这题、、、纪念一下吧~还有一个小的点要注意一下的就是 sum的奇偶!,很多水题中都喜欢拿着一点做文章,还有负数的时候,比如-91,此时÷2后的结果?用移位运算符后的结果?要注意一下哈 。反正(-81>>1)结果是-41我不管。


上代码:

#include<iostream>
using namespace std;
int main()
{
	int n;
	int sum=0;
	int tmp;
	int a[100005];
	int ans=0;
	
	cin>>n;
	
	for(int i = 1;i<=n; i++) {
		scanf("%d",&a[i]);
		sum+=a[i];
	}
	if(sum&1) {
		sum>>=1;
		sum+=1;
	}
	else sum>>=1;
	for(int i = 1; i<=n; i++) {
		ans+=a[i];
		if(ans>=sum) {
			printf("%d\n",i);
			break;
		}
	}
	return 0 ;
 }