Educational Codeforces Round 42 (Rated for Div. 2) A. Equator

 

水题。大意是找到最小的前缀和使其大于等于总和的一半。直接扫一遍比较就好了。值得注意的是 如果sum为奇数,sum=sum/2+1.因为这个wa了一发

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int a[200005];
int main()
{
    int n,i,sum=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",a+i);
        sum+=a[i];
    }
    if(sum%2==0)
    {
        sum/=2;

    }
    else
    {
        sum=sum/2+1;
    }
    int temp=0,flag;
    for(i=0;i<n;i++)
    {
       temp+=a[i];
       if(temp>=sum)
       {
           flag=i;
           break;
       }
    }
    printf("%d\n",flag+1);
    return 0;
}

  

猜你喜欢

转载自www.cnblogs.com/zyf3855923/p/8856130.html