GCJ2010 Qualification Round A Snapper Chain

少しボケーとしていると更新を忘れてしまう….そしてPythonはいまだ慣れず.早くなれたいんだけどなぁ.ということでGCJ2010のQRの問題を解いてみる.

問題

Snapperという機械の問題.

  • 電力の入力プラグと出力プラグがON/OFFスイッチがある.
  • 電気が来ているときに指を鳴らすとスイッチのON/OFFが切り替わる.
  • 電気が来ていてかつスイッチがONだと出力から次に電力を供給する

このSnapperを繋いでいったときに,K回スナップしたとき,末端の電力供給状態はONかOFFかという問題.

プログラム

import java.io.*;
import java.util.*;

public class QR_01_2010 {
	public void doMain() throws Exception {
		Scanner sc = new Scanner(new FileReader("./input/2010_QR_A-large-practice.in"));
		PrintWriter pw = new PrintWriter(new FileWriter("./output/Q01_2010output.txt"));
		int T = sc.nextInt();
		for (int t=0; t < T; t++) {
			int N = sc.nextInt(), K = sc.nextInt();
			int n = (1<<N) - 1;
			pw.print("Case #" + (t+1) + ": ");
			pw.println((K & n) == n ? "ON" : "OFF");
		}
		pw.flush();
		pw.close();
		sc.close();
	}

	public static void main(String[] args) throws Exception {
		(new QR_01_2010()).doMain();
	}
}

こいつは法則性を見つければそんなに難しくないですね.