《算法》第4版 习题1.3.37
// poj 3750
import java.util.Scanner;
public class Main {
private static class Queue<Item> {
private Node first;
private Node last;
private class Node {
Item item;
Node next;
}
public boolean isEmpty() {
return first == null;
}
public void enqueue(Item item) {
Node oldlast = last;
last = new Node();
last.item = item;
last.next = null;
if (isEmpty())
first = last;
else
oldlast.next = last;
}
public Item dequeue() {
Item item = first.item;
first = first.next;
if(isEmpty()) last = null;
return item;
}
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int num = cin.nextInt();
Queue<String> queue = new Queue<String>();
for (int i = 0; i < num; i++) {
String s;
s = cin.next();
queue.enqueue(s);
}
String s = cin.next();
String[] pos = s.split(",");
int n = Integer.parseInt(pos[0]);
int m = Integer.parseInt(pos[1]);
for (int i = 0; i < n - 1; i++)
queue.enqueue(queue.dequeue());
while (!queue.isEmpty()) {
for (int i = 0; i < m - 1; i++)
queue.enqueue(queue.dequeue());
System.out.println(queue.dequeue());
}
}
}