201909-(2)小明种苹果续
#include <iostream>
#define _for(i,a,b) for(int i=a;i<b;i++)
using namespace std;
int flag[1001]; //连续掉落flag
int d[1001]; //掉落flag
int main(){
int T=0,D=0,E=0;//T=苹果总和,D=掉落数,E=连续三颗苹果树掉果
int n,temp,a,b,c,sum=0; //temp=临时调换,n=苹果棵树,a=操作数,b=第一个操作数,c=第二个操作数
cin>>n;
_for(i,0,n){
cin>>a>>b;
flag[i]=0;
sum=b;
_for(j,1,a){
cin>>c;
if(c>0){
if(sum>c){
d[i]=1;
flag[i]=1;
}
sum=c;
}else sum+=c;
}
T+=sum;
D+=d[i];
}
if(flag[0]+flag[n-1]+flag[n-2]==3)E++;
if(flag[0]+flag[1]+flag[n-1]==3)E++;
_for(i,1,n){
if(flag[i-1]+flag[i]+flag[i+1]==3)E++;
}
cout<<T<<" "<<D<<" "<<E;
return 0;
}
应该还可以更省略一点吧!