Problem
めんどくさかったので愚直に実装した。文字列の長さの半分の回数だけループさせて2i+1,2iの順で出力する。
A:submission
Problem
添字に気をつけて実装する。.iter()を使って実装するともう少し丁寧になるはずだがめんどくさかった。
B:submission
Problem
DFSを用いた。フィールドを表している2次元ベクタと縦の制約Hと横の制約Wを引数に渡してusize型のcountを返す。HとWの制約がたかだか10程度なのでbit全探索を使っても間に合う。が、bit全探索でうまく実装する方法が思いつかなかったため各点をNode,その点から右と上に伸びる辺をEdgeとしてDFSできる。stackの要素はx座標、y座標、その座標で通った点をもつHashSetの3つのtupleとする。最初にスタート地点の要素をpushしてそこからはstackをpopしたものをwhile let Some(x , y , mut set)で受け取る。xが右端でない時右隣にある要素についてstackにpush,下端でない時真下にある要素についてstackにpushする。xもyも端に行き着いた時のsetの要素数がH+W-1になっていれば経路上の数が重複してないことを表しているため+1する。
C:submission