ccf 201909-2
题目
评测100分代码
#include<iostream>
using namespace std;
void func(){
int m,n;
int num;
cin>>n;
int sum =0;
int EverySum;
int num_a =0;
bool a[n]; //记录果树是否有果实掉落
for(int i=0;i<n;i++){
cin>>m; //m为记录次数
cin>>EverySum;
a[i] = false;
for(int j=0;j<m-1;j++){
cin>>num;
if(num>0){
if(!a[i]&&EverySum!=num){ //只统计一次
a[i] = true;
num_a++;
}
EverySum = num;
}
else{
EverySum += num;
}
}
sum += EverySum;
}
int group=0;
for(int i=0;i<n;i++){
if(a[i]&&a[(i+1)%n]&&a[(i+2)%n]){
group++;
}
}
if(n<3){
group = 0;
}
/*else if(n==3){ //只有3棵树时若全部掉落则算作3组??? (题目意思)
if(group>0)
group = 1;
}*/
cout<<sum<<" "<<num_a<<" "<<group;
}
int main(){
func();
return 0;
}
其中比较坑的地方即计算掉落果树的棵数时每棵树只计算一次,另外3棵树算3组也是没想到的???