#include<bits/stdc++.h>
#include<queue>
#include<cmath>
using namespace std;
typedef long long ll;
int main()
{
int n,m,a[110],b[110]={0};
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
queue<int>ff;
for(int i=1;i<=n;i++)
{
ff.push(i);
}
int en=1;
while(!ff.empty())
{
int w=ff.front();
b[w]+=m;
if(b[w]>=a[w])
{
en=w;
ff.pop();
}
else
{
ff.push(w);
ff.pop();
}
}
cout<<en<<endl;
return 0;
}
本文介绍了一个有趣的算法问题:如何通过模拟的方式确定在特定糖果分配规则下,哪个孩子会最后离开队伍。该问题涉及到队列的数据结构使用,并通过示例说明了算法的具体实现过程。
527

被折叠的 条评论
为什么被折叠?



