ikeがICPCの記事を書いていたので見たらintの3次元配列とかやってた。
http://d.hatena.ne.jp/no_known/20090524
int型は4byteだから
500^3 * 4 = 500MB
問題は300MBぐらいしか使えないみたいなのでアウト。
そもそも穴の開いてるかあいていないかなんだからbooleanで十分。
そこでふと疑問がわく。
Javaのbooleanは1bitか1byteか?
普通に考えれば1bitなんだが、どこかで1byteと見た覚えもある。
気になって調べるとWikipediaでは
Javaでは、ブーリアン型は boolean 型で表され、一般に1バイトで実装される(実装はJava仮想マシンに依存する)。booleanへの、あるいはbooleanからの型変換は許されない。
http://ja.wikipedia.org/wiki/ブーリアン型#Java
Twitterでも聞いてみたけどJavaVMの実装依存らしい。
というわけで、最悪の場合を考えて1byteでやっておく。
それでも500^3で125MBぐらいだし問題なくいけそうだからどっちでもいいか(ぉ
PS:
場合によっては数値にキャストできることからboolean型は4byteかも知れないらしい。
それならとりあえずbyte使えば1byteで済むしそれでいいか・・・