P3817 小A的糖果(贪心)

P3817

当相邻的两盒大于x到时候,应该先吃那一盒呢?
答案:正着遍历,吃后面;反着遍历,吃前面!
为什么是这样的呢?
比如一个样例:
5 6
4 5 3 6 2
此时,若正着遍历,4+5>6,如果吃4(a[1]),就考虑不到a[3],吃5(a[2])则一举两得。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,x;
ll a[100005];
ll ans;
int main()
{
     cin>>n>>x;
     for(int i=1;i<=n;i++){//这里保证了先处理a[1],而不是先处理a[0]; 
     	cin>>a[i];
     	if(a[i]+a[i-1]>x){
     		int yy=a[i]+a[i-1]-x;
     		a[i]-=yy;
     		ans+=yy;
		 }
	 }
	 cout<<ans;
     
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值