还是简单的模拟题
#include<iostream> #include<climits> using namespace std; int n,m,ans3=0,ans1,ans2; int apples[1005]; bool isDrop[1005]; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>m; cin>>apples[i]; for(int j=0;j<m-1;j++){ int temp; cin>>temp; if(temp>0){ if(apples[i]>temp){ isDrop[i]=true;//发生苹果掉落 } apples[i]=temp; }else{ apples[i]+=temp; } } ans1+=apples[i]; if(isDrop[i]){ ans2++; } } for(int i=0;i<n;i++){ int pre=(i-1+n)%n; int succ=(i+1+n)%n; if(isDrop[i]&&isDrop[pre]&&isDrop[succ]){ ans3++; } } cout<<ans1<<" "<<ans2<<" "<<ans3<<endl; return 0; } //4 //4 74 -7 -12 -5 //5 73 -8 -6 59 -4 //5 76 -5 -10 60 -2 //5 80 -6 -15 59 0 //5 //4 10 0 9 0 //4 10 -2 7 0 //2 10 0 //4 10 -3 5 0 //4 10 -1 8 0