欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

1418:猴子选大王

时间:2024-05-18 15:58 作者:admin 点击:
#include iostream#include queueusing namespace std;queueint q;//创建一个约瑟夫队列int main(){ int N,M[1000005]={0}; cinN; for(int i=1;i=N;i++) cinM[i];//死亡数字 for(int i=1;i=N;i++) q.push(i);//猴子编号 int c=1,X=M[q.front
#include <iostream>
#include <queue>
using namespace std;
queue<int> q;//创建一个约瑟夫队列
int main(){
    int N,M[1000005]={0};
    cin>>N;
    for(int i=1;i<=N;i++) cin>>M[i];//死亡数字
    for(int i=1;i<=N;i++) q.push(i);//猴子编号
    int c=1,X=M[q.front()];
    while(q.size()!=1){
        if(c==X){
            q.pop();
            c=1;
            X=M[q.front()];
        } 
        else{
            q.push(q.front());  
            q.pop();
            c++;
        }
    }
    cout<<q.front();
    return 0;
}


(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%