Submission

Status:

PPPPP---P-

Subtask/Task Score:

60/100

Score: 60

User: purihorharin

Problemset: Fool's Compensation

Language: c

Time: 0.002 second

Submitted On: 2026-03-21 09:00:44

#include <stdio.h>
#include <limits.h>

int wrks[10000];
int fcps[10000];
int n;

int work (i) {
    return (i < 0 || i >= n) ? INT_MAX : wrks[i];
}

int max(int a, int b) {
    return (a > b) ? a : b;
}

int main () {
    scanf("%d", &n);

    for (int i = 0; i < n; i++) {
        scanf("%d", wrks+i);
        fcps[i] = INT_MIN;
    }

    for (int i = 0; i < n; i++) {
        if (work(i-1) >= wrks[i] && wrks[i] <= work(i+1)) {
            fcps[i] = 1000;
            for (int j = i-1; j >= 0 && wrks[j] >= wrks[j+1]; j--) {
                fcps[j] = max(fcps[j], fcps[j+1] + 1000 * (wrks[j] > wrks[j+1]));
            }
            for (int j = i+1; j < n && wrks[j] >= wrks[j-1]; j++) {
                fcps[j] = max(fcps[j], fcps[j-1] + 1000 * (wrks[j] > wrks[j-1]));
            }
        }
    }
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += fcps[i];
    }
    printf("%d", sum);
}