小蒟蒻第一次求助,如有什么不对的请指正谢谢
0 Runtime Error
bdfs无果(这种怎么可能有啊
题面:n 个孩子围成一圈在玩击鼓传花的游戏,老师负责击鼓,当鼓点结束,拿着花的孩子就要被淘汰出圈(此时鼓点也自动停止),然后下一个孩子接过花继续开始,此时鼓点会继续响起,依次淘汰,直到最后只留下一个孩子,就是胜利者。
有些孩子身手敏捷,很快就能把花传到下一个人手里,也有些孩子会在手里保留一阵子再传给下一个人,每个孩子保留花的时间是 t[i] 秒,假设花传递的过程不需要时间。
现在从 1 号孩子开始传递,输出最后的胜利者,以及淘汰的顺序
注意:鼓点持续时间 m,表示第m+1秒停止,而花停留在手里的时间为t[i],t[i+1]秒时花已经到了下一个人手里。 例如:m=12,t[1]=12,则第2人被淘汰。
代码:
#include<bits/stdc++.h>
using namespace std;
int t[1003],ttz[1000];
int main(){
int n,m,m1,s,wz=0,zz=1,xcwz=0;//s=剩余人数,wz=人数位置,zz=淘汰人数的指针,m1=已经过了多少秒 xcwz=幸存人的位置
cin>>n>>m;
m1=0;
s=n;
for(int i=1;i<=n;i++) cin>>t[i];//输入
while(s>1){//循环
while(1){
if(wz==n) wz=0;
wz++;
if(t[wz]==0) continue;
m1+=t[wz];
xcwz=t[wz];
if(m1>=m+1){
t[wz]=0;
m1=0;
ttz[zz]=wz;
zz++;
break;
}
}
s--;
}
cout<<xcwz<<endl;
for(int i=1;i<n;i++){
cout<<ttz[i]<<" ";
}
return 0;
}
样例不知道为什么,胜利者的编号错了,而淘汰的人顺序却对了
输入数据:
5 12
3 7 9 1 4
输出数据
4
3 2 5 1
我的代码:
1
3 2 5 1
就梨谱