TopCoder Marathon Match 36 用のライブラリ関数

もうあと1日しか残ってないけれど MM36が始まったので、前回(http://d.hatena.ne.jp/Horiuchi_H/20080612/1213242021)にさらに引き続き起動用の関数を、と思ったのですが今回は visualizerを使わない問題なのでそれはなくなりました。代わりに、パスワードの候補を読み出す関数が必要なのでそれを用意しました。ただ、そんなに難しいものでも無いので必要かどうか疑問ですけど^^;ソースは下に張っておきます。

さて、MM36は暗号化されたテキストを解読するというものです。暗号化方式は提示されているので、暗号化キーを捜していく感じになるかと思います。問題文は以下のとおりです*1

http://www.topcoder.com/longcontest/?module=ViewProblemStatement&rd=12202&pm=9798

このクラスの使い方。問題文に「Available Libraries」として提供されているものなので、Commitの際には不要になります。コンパイルを通すのに、以下のファイルを Words.java として保存しておくと便利です。また起動時にファイルを読み込むので、「TWL word list」のファイルを起動する場所に置いてください。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Words {
	private static final String LOAD_FILE_NAME = "TWL06.txt";
	private static final List<String> list = new ArrayList<String>();

	public static String[] getWords() {
		return list.toArray(new String[0]);
	}

	static {
		try {
			BufferedReader reader = new BufferedReader(new FileReader(LOAD_FILE_NAME));
			while (reader.ready()) {
				list.add(reader.readLine());
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

*1:TopCoderにログインしないと見れないので、この機会に是非registしてみてください