返回首页 返回题库

分糖果

C++ 简单 GESP三级真题 #贪心算法

题目描述

题面描述

有n位小朋友排成一队等待老师分糖果。第i位小朋友想要至少a[i]颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?

输入格式

第一行,一个正整数n,表示小朋友的人数。

第二行,n个正整数a₁ a₂ … aₙ,依次表示每位小朋友至少需要的糖果数量。

输出格式

输出一行,一个整数,表示最少需要准备的糖果数量。

样例1

输入:

4
1 4 3 3

输出:

16

样例2

输入:

15
314 15926 53589793 238462643 383279502 8 8 4 1 9 7 1 6 9 3

输出:

4508143253

数据范围

对于所有测试点,保证1 ≤ n ≤ 1005,1 ≤ a[i] ≤ 10^9。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察贪心算法的入门应用;每位小朋友的糖果数应取max(前一位糖果数+1,当前小朋友至少需要的糖果数),这样能保证总糖果数最少;注意总和可能很大,需要使用long long类型存储结果避免溢出。
⚙ 开始做这道题 1 人做过 · 2 收藏 · 20 浏览

讨论(0)