ついに魔王を倒し、世界に平和が訪れた!
しかしながら、私のたたかいはまだ終わっていない!月 $1$ 回の高級おやつを巡って、妹との勝負が残っているのだ!
何を隠そう私の妹は競技プログラミングに長けていて、毎回私と競技プログラミングで戦っては勝利し、高級おやつは妹のものになってしまうのだ!
(まあ、私の家が競技プログラミングの家系で、高級おやつは競技プログラミングの出来具合で決まるというきまりになっているから、しょうがないね。)
毎回妹に負けてしまい、延々高級おやつにありつけず、年上としての威厳もズタズタである私は、密かに競技プログラミングのスキル上昇に精進していたのだ!その一環として先程のゲーム Ancient Royal Coders をプレイしていたのである!
そして今回も高級おやつを巡って妹と勝負をすることになっている。
今回の競技は以下の条件を満たす縦 $N$ 行、横 $N$ 列のマス目を作成し、提出することで勝負するらしい。
$N$は$2 ≦ N ≦ 150$を満たす整数でなければならない。- 各マスには
$1$つのOが描かれているか、描かれていないかのいずれかである。 - 縦横の辺がいずれも行または列に平行な、どの長方形を取り出しても、その長方形の
$4$隅のいずれか$1$つはOが描かれていないマスである。言い換えると、$1 ≦ i < k ≦ N$および$1 ≦ j < l ≦ N$をみたす任意の$4$つの整数$i,j,k,l$において、以下の条件が成立することである。
このような条件を満たす縦 $N$ 行、横 $N$ 列のマス目のうち、より多く O が含まれるものを提出したほうが勝利である。
今月のおやつはあの伝説のプリンらしい。ここ数年、このプリンを口にしていない。因みにこの数年の起点が、妹が競技プログラミングを始めた日と合致していることは内緒である。
幸い、今回はプリンという分配可能なおやつなので、今回は双方の出来具合でプリンを分配するよう提案し、可決された。これは私が妹の分のおやつを取ったことで妹が悲しまないようにするためで、別にちょっとだけでも貰おうとかいう考えじゃないぞ!
何よりも今回は負けない自信がある。さあ、今こそ Ancient Royal Coders で鍛えたプログラミングスキルを披露しようじゃないか!
今回、入力は与えられない。
この問題には部分点が設定されている。
- あなたが提出した出力に関して、出力が示すマス目に描かれている
Oの個数を$S$としたとき、以下の基準で得点が与えられる。
出力は以下ように記述すること。
$1$行目には整数$N$を出力する。$N$は$2$以上$150$以下なら任意に設定できる。$2$行目から$N$回だけ、長さ$N$の文字列を出力する。各文字はOか.のいずれかであり、$i$回目$(1 ≦ i ≦ N)$の出力に置ける文字列の左から$j$文字目$(1 ≦ j ≦ N)$に関して、 を表す。- その文字が
Oなら、$i$行$j$列のマスにはOが描かれていること- その文字が
.なら、$i$行$j$列のマスにはOが描かれていないこと
- その文字が
**なお、出力の最後には改行を入れること。**改行がない場合、他の部分が正しくてもWAとなってしまう点に注意。特に、出力後の結果画面に表示されるソースコード欄では最終行の改行の有無が判別しづらい場合があります。
この問題では、ソースコードのところに出力したい内容を書き、言語のところを Text (cat) を選択して提出することで、出力したい内容をそのまま出力として提出することができる。もちろん、この機能を使わずに他の言語のソースコードを提出しても構わないが、その場合はこの問題が指定する時間制限やメモリ制限等を満たさなければならない。
ジャッジの応答として、AC と WA の記述が表す意味がやや特殊である。
ACは、出力が条件を満たした場合に、最終的に得られる得点によらず出力される。WAは、出力が条件を満たさない場合に出力される。
AC
0
5
.....
.....
..OOO
...O.
..O..
- この出力の場合、出力は条件を満たす。しかしながら
$S = 5$となるため、この出力を提出しても$0$点である。
4
....
.OOO
..O.
.OO.
- この出力の場合、
$2$行$2$列、$2$行$3$列、$4$行$2$列、$4$行$3$列のいずれにもOが描かれているため、**出力は条件を満たさない。**よって、この出力を提出してもWAとなり,$0$点である。
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。