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; }