class Solution { public: int candy(vector<int> &ratings) { int n = ratings.size(); int ans = 0; vector<int> sum(n, 1); if (n < 2) return n; for (int i = 0; i < n; ++i) { if (i > 0 && ratings[i] > ratings[i - 1]) sum[i] = sum[i - 1] + 1; } for (int i = n - 1; i >= 0; --i) { if (i < n - 1 && ratings[i] > ratings[i + 1]) sum[i] = max(sum[i + 1] + 1, sum[i]); ans += sum[i]; } return ans; } };