本题链接: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;
}
总结
水题,不解释