andy6804tw
8/4/2016 - 2:30 AM

Problem B11 Rotate around a circle.java

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scn = new Scanner(System.in);
		int n = scn.nextInt();
		while (n-- != 0) {
			int d = scn.nextInt(), k = scn.nextInt(), m = scn.nextInt(), l = scn.nextInt(), arr[] = new int[d],
					arr2[] = new int[d], num = 0;
			for (int i = 0; i < d; i++)
				arr[i] = i + 1;
			for (int i = 0; i < m; i++) {
				for (int j = 0; j < d; j++) {
					if (arr[j] % 2 != 0) {
						num = j + l;
						if (num >= d)
							num -= d;
						arr2[num] = arr[j];
					} else {
						num = j - l;
						if (num < 0)
							num += d;
						arr2[num] = arr[j];
					}
				}
				for (int j = 0; j < d; j++)
					arr[j] = arr2[j];
			}
			for (int j = 0; j < d; j++) {
				if (arr2[j] == k) {
					System.out.println(arr2[j + 1] + " " + arr2[j - 1]);
					break;
				}
			}
		}
	}
}