采用环状链表实现
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int m, n, k;
    cin >> n >> k >> m;

    list<int> l1;
    for (int i = 0; i < n; i++)
    {
        l1.push_back(i);
    }

    auto it1 = l1.begin();
    for (int i = 1; i <= k; i++)
    {
        it1++;
    }

    while (n != 1)
    {
        int x = m - 1;
        while (x--)
        {   if(it1==--l1.end())
                it1 = l1.begin();
            else it1++;
        }
        if (it1 == --l1.end())
        {
            it1 = l1.erase(it1);
            it1 = l1.begin();
        }
        else
        {
            it1 = l1.erase(it1);
        }

        n--;
    }

    cout << l1.front();
}