题目描述
一共有 n 个箱子排成一排,从左到右依次编号为 1∼n。
其中,第 i 号箱子中放有 ai 个石子。
现在,你可以进行最多 d 次操作。
每次操作可以将一个石子从一个箱子移动至另一个与其相邻的箱子里。
我们希望通过合理操作使得 1 号箱子内的石子数量尽可能大。
请问,这个最大可能值是多少?
C++ 代码
#include<iostream>
using namespace std;
int q[110];
int main()
{
int t;
cin>>t;
while(t--)
{
int n,d,ans;
cin>>n>>d;
for(int i = 1;i <= n;i ++) cin>>q[i];
ans = q[1];
for(int i = 2;i <= n&&d >= 0;i ++)
while(q[i] != 0&&d - (i - 1) >= 0)
{
q[i]--;
ans++;
d -= (i - 1);
}
cout<<ans<<endl;
}
return 0;
}