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);
}