出力を入力へ

プログラミングに関する基本的な事を中心にまとめます

参加記録 GCJ Qualification Round 2018

システムが一新した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だと足りなくなると思い込んでいたけど 考えなくても自明だった.