#include <cstdio>
using namespace std;
#define MAX 1002
int A[MAX];
int main() {
int n,k,r=0,u;
scanf("%d %d",&n,&k);
for(int i=0;i<n;i++) scanf("%d",&A[i]);
bool update;
do {
update = false;
for(int i=0;i<n-1;i++) {
if (A[i]>A[i+1]+k) {
u = A[i] - k - A[i+1];
A[i+1] +=u;
r+= u;
update = true;
// printf("1u: %d i:%d\n",u,i);
}
if (A[i+1]>A[i]+k) {
u = A[i+1] - k - A[i];
A[i] +=u;
r+= u;
update = true;
// printf("2u: %d i:%d\n",u,i);
}
}
} while(update);
printf("%d\n", r);
}
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 32 33 34 | #include <cstdio> using namespace std; #define MAX 1002 int A[MAX]; int main() { int n,k,r=0,u; scanf("%d %d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&A[i]); bool update; do { update = false; for(int i=0;i<n-1;i++) { if (A[i]>A[i+1]+k) { u = A[i] - k - A[i+1]; A[i+1] +=u; r+= u; update = true; // printf("1u: %d i:%d\n",u,i); } if (A[i+1]>A[i]+k) { u = A[i+1] - k - A[i]; A[i] +=u; r+= u; update = true; // printf("2u: %d i:%d\n",u,i); } } } while(update); printf("%d\n", r); } |
English