编辑代码

#include <stdio.h>
#include <stdlib.h>
int candy(int*,int);
int max(int,int);
int main () {
    int ratingsSize=0;
    int i=0;
    scanf("%d",&ratingsSize);
    int *ratings=(int*)malloc(ratingsSize*sizeof(int));
    for(i=0;i<ratingsSize;i++){
        scanf("%d",&ratings[i]);
    }
    printf("%d",candy(ratings,ratingsSize));
	return 0;
}

int candy(int* ratings, int ratingsSize) {
    int left[ratingsSize];
    for (int i = 0; i < ratingsSize; i++) {
        if (i > 0 && ratings[i] > ratings[i - 1]) {
            left[i] = left[i - 1] + 1;
        } else {
            left[i] = 1;
        }
    }
    int right = 0, ret = 0;
    for (int i = ratingsSize - 1; i >= 0; i--) {
        if (i < ratingsSize - 1 && ratings[i] > ratings[i + 1]) {
            right++;
        } else {
            right = 1;
        }
        ret += max(left[i], right);
    }
    return ret;
}

int max(int a,int b){
    if(a>=b)
        return a;
    else
        return b;
}