groovyの勉強を始めてみた
本日の題材はACM-ICPCの問題。2010年国内予選の問題A。一番簡単な奴。
http://icpc2010.honiden.nii.ac.jp/domestic-contest/problems#section_A
eclipse開発だから、ファイルへの入出力へと変更した。
あとは、愚直に書いてみた。
package acm.jp2011p def xs = [] def ys = [] def out = new PrintWriter(new File(args[1])) new File(args[0]).splitEachLine("\\s+"){ List<String> items -> items = items.collect { it.toInteger() } if( items.size() == 1 ){ if( xs.size() > 0 && ys.size() > 0 ) out.println ((xs.max()-xs.min()+1) + " " + (ys.max()-ys.min()+1)) xs = [0]; ys = [0] } else { switch( items[1] ){ case 0: xs.add(xs[items[0]]-1); ys.add(ys[items[0]]); break case 1: xs.add(xs[items[0]]); ys.add(ys[items[0]]+1); break case 2: xs.add(xs[items[0]]+1); ys.add(ys[items[0]]); break case 3: xs.add(xs[items[0]]); ys.add(ys[items[0]]-1); break } } } out.close()