- 题目来源
- 代码
小明种苹果(续)
代码#include#include using namespace std; int main() { ifstream cin("in2.txt"); int N; cin>>N; long long int num[N]; // 各苹果树最终剩余的苹果数 bool drop[N]; // 各苹果树是否发生苹果掉落 // 初始化drop for (int i = 0; i < N; ++i) { drop[i] = false; } // 记录 num、drop for (int i = 0; i < N; ++i) { int m; cin>>m; // 第一个数为后续aij的数量 cin>>num[i]; // 第一个aij一定为正数 for (int j = 0; j < m - 1; ++j) { int tmp; cin>>tmp; if (tmp > 0) { // aij为正数即重新记录树上苹果数 if (tmp < num[i]) { // 当前苹果数少于之前记录的数量——发生了落果 num[i] = tmp; drop[i] = true; } } else { // 疏果数 (负数或0) num[i] += tmp; } } } int cont = 0; // 连续第i棵落果 long long int T = 0, D = 0, E = 0; for (int i = 0; i < N; ++i) { T += num[i]; // 记录各棵苹果树最终的苹果数 if (drop[i]) { // 当前树发生落果 ++D; ++cont; if (cont >= 3) { ++E; } } else { cont = 0; } } if (N >= 3) { // 因为是一个圈,所以要记录这个 if (drop[0] && drop[1] && drop[N - 1]) { ++E; } if (drop[0] && drop[N - 1] && drop[N - 2]) { ++E; } } cout<



