#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int n;
long long k;
scanf("%d %lld", &n, &k);
long long a[1000];
for (int i = 0; i < n; i++)
scanf("%lld", &a[i]);
long long L[1000], R[1000];
L[0] = a[0];
for (int i = 1; i < n; i++)
L[i] = max(L[i - 1], a[i] + k * i);
R[n - 1] = a[n - 1] - k * (n - 1);
for (int i = n - 2; i >= 0; i--)
R[i] = max(R[i + 1], a[i] - k * i);
long long ans = 0;
for (int i = 0; i < n; i++) {
long long b = max(L[i] - k * i, R[i] + k * i);
ans += b - a[i];
}
printf("%lld\n", ans);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <cstdio> #include <algorithm> using namespace std; int main() { int n; long long k; scanf("%d %lld", &n, &k); long long a[1000]; for (int i = 0; i < n; i++) scanf("%lld", &a[i]); long long L[1000], R[1000]; L[0] = a[0]; for (int i = 1; i < n; i++) L[i] = max(L[i - 1], a[i] + k * i); R[n - 1] = a[n - 1] - k * (n - 1); for (int i = n - 2; i >= 0; i--) R[i] = max(R[i + 1], a[i] - k * i); long long ans = 0; for (int i = 0; i < n; i++) { long long b = max(L[i] - k * i, R[i] + k * i); ans += b - a[i]; } printf("%lld\n", ans); return 0; } |
English