Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
113111 彭林江 环形密码 C++ Accepted 1 MS 284 KB 932 2025-03-15 11:48:15

Tests(10/10):


Code:

#include<bits/stdc++.h> using namespace std; int N, M; // N人数,报到M的人杀掉 int ren = 0, bs = 0; // ren代表当前是几号在报数,bs表示当前报的数字是多少 int live = 0; // 表示当前还活着的人数 int die[1001]; // die[i]=0,表示第i个人活着 , die[i]=1表示第i个人挂了 int a[1001]; int main(){ cin >> N >> M; for(int i = 1; i <= N; i++){ cin >> a[i]; } live = N; // 游戏开始前一共有N个人活着 while(live != 0){ ren++; // 人报数 if(ren > N){ // 判断一下是否超过了总人数,超过了说明相当于是第1个人在报 ren = 1; } if(die[ren] == 1){ // 杀掉的人是没有报数的资格的,跳过 continue; } bs++; if(bs == M){ cout << a[ren] << " "; die[ren] = 1; //ren被标记成死掉 bs = 0; //为下一个人报数做好准备 live--; M = a[ren]; } } return 0; }