int main() {int n,p,m;while (1){scanf("%d%d%d",&n,&p,&m);if (n==0&&p==0&&m==0){break;}else{queue<int> MyQ;//从编号p小孩开始,依次把孩子们作为一个队列排好队,比如五个小孩,从三号开始,数到6走一个,//此规则下,排好队之后,MyQ为 3 4 5 1 2for (int i = p; i <= n; ++i) {MyQ.push(i);}for (int i = 1; i < p; ++i) {MyQ.push(i);}//循环m-1次,每次循环让队首去队尾,m-1次后的队首元素即是要出队的元素,即要喊m的小孩子printf("The student's queue is :");while (!MyQ.empty()){int temp;for (int i = 1; i < m; ++i) {temp = MyQ.front();//记录当前队首孩子编号MyQ.pop();//喊完就走MyQ.push(temp);//到队尾排队}printf("%d,",MyQ.front());//每循环m-1次,刚好此时队首孩子是应该淘汰的MyQ.pop();//淘汰队首孩子}}}#