AT_xmascon21_a At Random
Description
[problemUrl]: https://atcoder.jp/contests/xmascon21/tasks/xmascon21_a
**この問題は interactive である.**採点用プログラムが最大で 実行時間 100 ms / メモリ 8 MB 程度を使用する.
横 $ 500 $ px,縦 $ 500 $ px のキャンバスがあり,画素の位置は整数の組 $ (x,\ y) $ ($ 0\ \leq\ x\
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 達成条件
目標のデザインは横 $ 500 $ px,縦 $ 500 $ px の白黒画像として与えられる.操作によって作られた画像が以下の $ 2 $ 条件をどちらも満たしていれば「デザインに沿った」とみなされる:
- 目標のデザインにおいて**黒**であるような画素のうち,作られた画像においても**黒**であるような画素の割合が $ 85 $% 以上であること.
- 目標のデザインにおいて**白**であるような画素のうち,作られた画像においても**白**であるような画素の割合が $ 70 $% 以上であること.
### データ
**この問題を解くために必要なデータをまとめた zip ファイルが[こちら](https://img.atcoder.jp/xmascon21/5c52000105a08a64854cbde6008b2d78.zip)からダウンロードできる.**zip 内には以下のファイルが入っている.
- `atrandom/input.png`: 目標デザインを表す画像.画像サイズは横 $ 500 $ px,縦 $ 500 $ px である.
- `atrandom/input.txt`: 目標デザインを下記の入出力の仕様に合わせてテキストファイル化したもの.**実際の採点時に提出されたプログラムに最初に与えられる入力と同一である.**
- `atrandom/interactive_tester.py`: この問題における interactive なやりとりをローカルでテストするための Python 3 製ツール.
- `python3 interactive_tester.py -- ` として使用する.
- `` は目標デザインをテキスト化したもののファイルパス.実際の採点と同様のケースでテストするには,同梱されている `input.txt` を指定すればよい.
- `` は移動するきつねを決める際に用いられる乱数のシード.本ツールで用いられている乱数生成方法は実際の採点時に用いられるものとは必ずしも一致しない.
- `` はあなたの提出するプログラムを実行するためのコマンドを表す文字列.
- たとえば C++ で書かれた解答を本ツールと同じディレクトリでコンパイルして `solver.out` という実行可能ファイルを作った場合,`python3 interactive_tester.py input.txt 0 -- ./solver.out` などとして実行できる.
- 同様にたとえば Python で書かれた `solver.py` という解答を本ツールと同じディレクトリに置いた場合,`python3 interactive_tester.py input.txt 0 -- python solver.py` などとして実行できる.
- なお,このツール内にある `drawline` 関数はブレゼンハムのアルゴリズムを実装したものとなっている.解答の作成時などに参考にしてもよい.
- `atrandom/visualize.html`: ローカル用のテストツールが出力した詳細な画像データを見るためのビジュアライザ.
- ローカル用テストツールが正しく実行されると,`interactive_tester.dump` というファイルが同じ階層に生成される.このファイルをビジュアライザに与えることで,あなたのプログラムが作った画像を可視化し,画像として保存することができる.
### 注意点
すべての操作を終えた後,**あなたのプログラムは直ちに終了しなければならない**.終了しなかった場合のジャッジ結果は不定である.また,条件を満たさない不正な出力をした場合の結果も不定である (必ずしも `WA` になるとは限らない).
すべての操作を終えてあなたのプログラムが終了した後,作られた画像が達成条件を満たしていれば正答とみなされる.
**出力した後に,出力を flush しなければならないことに注意せよ.flush しなかった場合,TLE となることがある.**
各言語での入出力の方法は過去の AtCoder で出題されている問題 (リンク: [ABC 019 D: 高橋くんと木の直径](http://abc019.contest.atcoder.jp/tasks/abc019_4)) を参考にするとよい。
### 入出力例
$ W=5,\ H=5,\ T=10 $ のときの入出力例を示す.
実際のテストケースとして与えられる入力データは配布データに含まれるものと同一な $ 1 $ ケースのみであり,以下は入出力の具体例を示すための説明であることに注意せよ.
入力 出力 説明 ```
5 5 10
```
$ W,\ H,\ T $ が与えられている. ```
..##.
.####
####.
###..
.#... ``` 目標のデザインが与えられている. ``` 2 4 ``` $ (x,\ y)\ =\ (2,\ 4) $ として操作を行う. ``` 1 ``` 操作の結果,動いたのはきつね $ 1 $ であるという情報が与えられる. ``` 3 3 ``` $ (x,\ y)\ =\ (3,\ 3) $ として操作を行う. ``` 1 ``` 操作の結果,動いたのはきつね $ 1 $ であるという情報が与えられる. ``` 3 0 ``` $ (x,\ y)\ =\ (3,\ 0) $ として操作を行う. ``` 0 ``` 操作の結果,動いたのはきつね $ 0 $ であるという情報が与えられる. ``` -1 -1 ``` これ以上の操作は行わない (操作を $ 3 $ 回で終える) ことを示す.
.####
####.
###..
.#... ``` 目標のデザインが与えられている. ``` 2 4 ``` $ (x,\ y)\ =\ (2,\ 4) $ として操作を行う. ``` 1 ``` 操作の結果,動いたのはきつね $ 1 $ であるという情報が与えられる. ``` 3 3 ``` $ (x,\ y)\ =\ (3,\ 3) $ として操作を行う. ``` 1 ``` 操作の結果,動いたのはきつね $ 1 $ であるという情報が与えられる. ``` 3 0 ``` $ (x,\ y)\ =\ (3,\ 0) $ として操作を行う. ``` 0 ``` 操作の結果,動いたのはきつね $ 0 $ であるという情報が与えられる. ``` -1 -1 ``` これ以上の操作は行わない (操作を $ 3 $ 回で終える) ことを示す.