本题链接:201909-2 小明种苹果(续)
本博客给出本题截图:
C++
#include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N = 1010; int n; vector<int> q[N]; bool st[N]; int get(vector<int>& a, int k) { int res = a[k]; for (int i = k + 1; i < a.size(); i ++ ) if (a[i] <= 0) res += a[i]; return res; } int main() { scanf("%d", &n); for (int i = 0; i < n; i ++ ) { int k; scanf("%d", &k); while (k -- ) { int x; scanf("%d", &x); q[i].push_back(x); } } int T = 0, D = 0, E = 0; for (int i = 0; i < n; i ++ ) { int a, b; for (int j = q[i].size() - 1; j >= 0; j -- ) if (q[i][j] > 0) { a = get(q[i], j); break; } b = get(q[i], 0); T += a; if (b > a) st[i] = true, D ++ ; } for (int i = 0; i < n; i ++ ) if (st[i] && st[(i + 1) % n] && st[(i + 2) % n]) E ++ ; printf("%d %d %d\n", T, D, E); return 0; }
总结
水题,不解释