システムが一新したGCJ. サーバエラーが相次いだようだけど自分は影響なかった.
ただし,コンパイルエラー(提出クラス名の修正ミス)とか 入出力形式ミスがあったので気を付けたい.
ABC small解けた時点でどれか1つはlarge通るだろうと Dは問題文読むだけで解かなかった.
Saving The Universe Again
Cを右に,Sを左にもってくればいい. 特に右側のCほどダメージが大きいので 後ろからCSの順序となっている位置を持ってきて 交換することを繰り返せばいい.
最初にSの数を数えて最小ダメージを算出し, IMPOSSIBLEかどうか判定したけど必要なかった. Pが30文字以下,Dは109以下なので intだけでよかったけど,本当にそうか悩んでしまった. 最初から思考停止でlong使えばよかったかも?
本当に後ろのCSを交換することが最善か 自信がなくていろいろ検討した(結局確証は得られなかった)のと, 出力形式にコロン(':')を入れていなくてエラーとなったことに気付けなくて 数時間を消費してしまった.
Trouble Sort
手元で実験して奇数番目同士または偶数番目同士でしか 交換が生じないことに気付けた. 先に偶奇でそれぞれ別にソートして 最後に合わせたときにソートされているか判定すればいい.
配列を分割・統合する処理を実装するのに 手間取ったので実装力が足りない.
Go, Gopher!
問題文を理解するのに手間取った. Aが20/200で固定なのにサンプルでは3とか11だったり, テストツールが上手く動かせなかったり.
先に処理する領域を決定し, 領域をはみでないように座標を選択するとよい.
正方形に近くなるような領域を処理するようにしたけど, 折り返し処理が面倒な上に無駄も多くなるので どちらかの一辺は3マスでよかった. 領域が限られているので一辺が3だと足りなくなると思い込んでいたけど 考えなくても自明だった.