这题题意就是 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 ;
}