天天看点

Codeforces 383 A. Milking cows(贪心)

这题题意就是 1表示牛向右看,0表示牛向左看,怎么杀牛,能让牛看到自己同伴被杀受到的惊吓最小。思路就是,先从左往右,把向右看的的牛杀掉,(向右看的牛会看到,所以会有惊吓),再从右往左,把向左看的牛杀掉。(这次是没有惊吓的)。首先从左往右扫,遇到1(向右看的牛)先用一个ans变量记录下加1,(因为目前还没有牛看到同伴被杀)直到遇到0(左看的)sum+=ans,这样 ,一遍下来sum就是惊吓牛的总数。

#include<cstdio>
int main()
{
    int n;
    long long ans=,sum=;
    scanf("%d",&n);
    for(int i=;i<n;i++)
    {
        long long a;
        scanf("%lld",&a);
        if(a)
            ans++;
        else
            sum+=ans;
    }
    printf("%lld\n",sum);
    return ;
}