题目来源
来源:CF1307A
简单贪心模拟题。
以贪心的方式尽可能多的将较近的石子挪动到 1号箱子之中。
每次判断一个箱子如果其中的所有箱子都能够移入就更新信息,否则就能移入多少就移入多少,通过相除来判断能够移入多少。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int>pii;
const int maxn=105;
const int inf=0x3f3f3f3f;
int a[maxn];
int main()
{
int t,n,d;
cin>>t;
while(t--){
cin>>n>>d;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int ans=a[0];
for(int i=1;i<n;i++)
{
if(a[i]*i<d){
d-=a[i]*i;
ans+=a[i];
}
else{
int k=d/i;
ans+=k;
break;
}
}
cout<<ans<<endl;
}
}