E题还能用stl中的队列写
#include<iostream> #include<string>
#include<cstring> #include<vector>
#include<map> #include<set>
#include<queue> #include<cmath>
#include<cstdio> #include<algorithm> #define int long long using namespace std; queue<int> q; void solve() { int n, k, m, cnt = 1; cin >> n >> k >> m; for(int i = k; i < n; i++) q.push(i); for(int i = 0; i < k; i++) q.push(i); while(q.size() > 1){ if(cnt == m){ q.pop(); cnt = 1; } else{ cnt++; q.push(q.front()); q.pop(); } } cout << q.front(); } signed main() { ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); int t = 1; //cin >> t; while(t--){ solve(); } return 0; }