1. 程式人生 > >洛谷 P3817 【小A的糖果】

洛谷 P3817 【小A的糖果】

 

題目描述

小A有N個糖果盒,第i個盒中有a[i]顆糖果。

小A每次可以從其中一盒糖果中吃掉一顆,他想知道,要讓任意兩個相鄰的盒子中加起來都只有x顆或以下的糖果,至少得吃掉幾顆糖。

問題連結

https://www.luogu.org/problemnew/show/P3817

問題解答:

典型的貪心:
ans要開long long
為了使吃的最少,要改變兩盒糖果中後面那盒

程式碼:

#include<bits/stdc++.h>
using namespace std; int main() { long long ans=0,N,x,i; cin>>N>>x; int a[N]; for(i=0;i<N;i++) cin>>a[i]; for(i=0;i<N-1;i++) { if(a[i]+a[i+1]>x) { ans+=a[i]+a[i+1]-x; a[i+1]=x-a[i]; } } cout<<ans<<endl; return 0; }