1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n, a[1000050], cnt, m; int main() { cin >> n; queue <int> q; for(int i = 1; i <= n; i++) { cin >> a[i]; q.push(i); //入队 } m = a[1]; // 第一个要求的数其实就是a[1] while (q.size() != 1) { ++cnt; // 报数 int x = q.front(); q.pop(); if (cnt != m) q.push(x); // 若没到要求的数,则入队,继续报数 else { // 同循环队列 cnt = 0; m = a[q.front()]; // 出队,并更换m } } cout << q.front() << endl; return 0; } /* 5 1 2 3 4 5 */
- 1
信息
- ID
- 875
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 8
- 已通过
- 5
- 上传者