B4359 [GESP202506 三级] 分糖果
·
题目描述
有 n 位小朋友排成一队等待老师分糖果。第 i 位小朋友想要至少 ai 颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。
老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?
输入格式
第一行,一个正整数 n,表示小朋友的人数。
第二行,n 个正整数 a1,a2,…,an,依次表示每位小朋友至少需要的糖果数量。
输出格式
输出一行,一个整数,表示最少需要准备的糖果数量。
输入输出样例
输入 #1复制
4 1 4 3 3
输出 #1复制
16
输入 #2复制
15 314 15926 53589793 238462643 383279502 8 8 4 1 9 7 1 6 9 3
输出 #2复制
4508143253
说明/提示
对于所有测试点,保证 1≤n≤1000,1≤ai≤109。
#include<bits/stdc++.h>
using namespace std ;
int n,a[1005];
long long cnt;
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++){
if(a[i]>a[i-1]) cnt+=a[i];
else a[i]=a[i-1]+1,cnt+=a[i-1]+1;
}
cout<<cnt;
return 0;
}
这种方法类似打擂台
更多推荐

所有评论(0)