#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
constexpr int N=1005;
#define gc getchar_unlocked
#define pc putchar_unlocked
inline int read(){
int x=0; char c=gc();
while(!isdigit(c))c=gc();
while(isdigit(c))x=x*10+c-'0',c=gc();
return x;
}
void write(const ll x){
if(x>9)write(x/10);
pc(x%10+'0');
}
int n,k,a[N];
ll ans;
int main(){
n=read(),k=read();
for(int i=1;i<=n;i++)ans-=a[i]=read();
for(int i=1;i<n;i++)a[i+1]=max(a[i]-k,a[i+1]);
for(int i=n;i>1;i--)a[i-1]=max(a[i]-k,a[i-1]);
for(int i=1;i<=n;i++)ans+=a[i];
write(ans),pc('\n');
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 | #include<bits/stdc++.h> using namespace std; typedef long long ll; constexpr int N=1005; #define gc getchar_unlocked #define pc putchar_unlocked inline int read(){ int x=0; char c=gc(); while(!isdigit(c))c=gc(); while(isdigit(c))x=x*10+c-'0',c=gc(); return x; } void write(const ll x){ if(x>9)write(x/10); pc(x%10+'0'); } int n,k,a[N]; ll ans; int main(){ n=read(),k=read(); for(int i=1;i<=n;i++)ans-=a[i]=read(); for(int i=1;i<n;i++)a[i+1]=max(a[i]-k,a[i+1]); for(int i=n;i>1;i--)a[i-1]=max(a[i]-k,a[i-1]); for(int i=1;i<=n;i++)ans+=a[i]; write(ans),pc('\n'); return 0; } |
English