続いてEasyも練習。
http://community.topcoder.com/stat?c=problem_statement&pm=12335
ブロックの配置が与えられるので、最初左にスライドさせ、次に上にスライドすることを考える。
この最終状態と同じ状態にするには、最低何回スライド(0~2)させるか答える問題。
この問題は穴(ブロックが無い場所)は1か所しかない。
よって、穴が最左になければ左寄せにスライド1回、最下段になければ上寄せにスライドをもう1回するだけ。
class PenguinTiles { public: int minMoves(vector <string> tiles) { int x,y,res=0;; FOR(y,tiles.size()) FOR(x,tiles[y].size()) { if(tiles[y][x]=='.') { if(x<tiles[y].size()-1) res++; if(y<tiles.size()-1) res++; return res; } } return 0; } };
まとめ
いくらDiv2 Easyとはいえ、穴の数は任意でもよかったと思うんだけどな。