这题听简单的,但是前几次做只有五十分,百思不得其解。后来发现,D统计的是掉落苹果数的棵树,而不是苹果掉落的次数,一棵树可能掉落两次苹果,但是D只会增加1…
代码也很简单易懂,,因为本人智商并不高(误
#include<iostream>
#include<string.h>
using namespace std;
int a[1001];
int b[1001];
int c[1001];
int main(){
int n;cin>>n;
long long num=0;
int cnt=0,triple=0;
memset(c,-1,sizeof(c));
for(int i=0;i<n;i++){
int m;cin>>m;
for(int j=0;j<m;j++){
cin>>a[j];
if(a[j] > 0 ) {
if(j){
if(b[i] > a[j] && c[i] == -1) { // 就是这儿坑了半天
cnt++;
c[i] = 1;
}
}
b[i] = a[j];
}
else if(a[j] < 0){
b[i] += a[j];
}
else continue;
}
}
for(int i =0;i<n;i++){
if(c[i] == 1){
if(c[(i + 2)%n] == 1 ){
if(c[(i+1)%n] == 1) triple++;
}
}
num += b[i];
}
cout<<num<<" "<<cnt<<" "<<triple<<endl;
}