CCF CSP 2019-9-2 小明种苹果(续) C语言100分
小明种苹果(续) 1完成时间1-21 11:59 代码长度477B C 正确 100 耗时46ms 空间使用2.527MB
思路:存一组数组数据处理一组数据,存入数组中,for循环遍历如果a[i]小于等于0,则正常从初始值中减去,如果大于0,就用目前的计算值和该值比较,若不一样就将该值赋给计算值,同时record[i]置1。为了后续的运算方便我们将record[N]赋给record[0],record[0]赋给record[N+1],所以record共需N+2个。
for循环遍历record,如果record[i]&&record[i-1]&&record[i+1]==1,则E+1。
以下为100分C语言代码
#include<stdio.h>
int main()
{
int N,n;
int i,j,sum=0,Drop=0,E=0;
int a,b,drop[1002]={0};
scanf("%d",&N);
for(i=1;i<N+1;i++)
{
scanf("%d %d",&n,&a);
for(j=1;j<n;j++)
{
scanf("%d",&b);
if(b<=0)
{
a+=b;
}
else if(a!=b)
{
drop[i]=1;
a=b;
}
}
sum+=a;
}
drop[0]=drop[N];
drop[N+1]=drop[1];
for(i=1;i<N+1;i++)
{
Drop+=drop[i];
if(drop[i-1]&&drop[i]&&drop[i+1])
{
E++;
}
}
printf("%d %d %d",sum,Drop,E);
return 0;
}