题目链接:点击打开链接
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
const int N = 20000+10;
ll a[N];
int main() {
int n;
ll d, sum, ans;
while (~scanf("%d%I64d", &n, &d)) {
for (int i = 1; i <= n; ++i)
scanf("%I64d", &a[i]);
sum = 0;
for (int i = 1; i <= n; ++i) {
sum += a[i];
if (sum > d * i) {
a[i] = d * i - (sum - a[i]);
sum = d * i;
}
}
printf("%I64d ", sum);
ans = sum = 0;
if (a[n] > d)
ans = sum = a[n] - d;
for (int i = n - 1; i >= 1; --i) {
if (a[i] <= d) {
sum -= d - a[i];
if (sum < 0)
sum = 0;
ans += sum;
} else {
a[i] -= d;
sum += a[i];
ans += sum;
}
}
printf("%I64d\n", ans);
}
return 0;
}