Codeforces Round #713 (Div. 3) 問題文和訳
- A. Spy Detected! / Шпион обнаружен!
- B. Almost Rectangle / Почти прямоугольник
- C. A-B Palindrome / A-B палиндром
- D. Corrupted Array / Испорченный массив
- E. Permutation by Sum / Перестановка по сумме
- F. Education / Образование
- G. Short Task / Короткая задача
A. Spy Detected! / Шпион обнаружен!
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
残りの要素と等しくない要素のインデックスを出力して下さい。配列内の数字は1から順に番号が振られています。
入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースの1行目には単一の整数 が与えられる、これは配列 の長さである。
各テストケースの2行目には 個の整数 が与えられる。
配列 の中の1つを除く全ての数字が同じであることは保証されている。
出力
各テストケースについて単一の整数を出力せよ、その整数とは他の要素と等しくない要素のインデックスである。
入出力例
4 4 11 13 11 11 5 1 4 4 4 4 10 3 3 3 3 10 3 3 3 3 3 3 20 20 10
2 1 5 3
B. Almost Rectangle / Почти прямоугольник
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
座標軸に平行な辺を持つ長方形の角になるようにさらに2つのセルをマークしなければなりません。
例えば、 で、長方形の領域が次のような場合(マークされたセルにはアスタリスクが書かれている)、
次のようにさらに2つのセルをマークすることができます。可能な解が複数存在する場合、そのいずれかを出力してください。入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースの1行目には単一の整数 が与えられる、これは表の行や列の個数である。
続く 行のそれぞれには空のセルとマークされたセルを表す'.
'と'*
'の 文字が与えられる。
全てのテストケースでの の和が を超えないことは保証されている。
領域内位にちょうど2つのアスタリスクがあることは保証されている。これらは同じ行/列にあっても構わない。
解が存在することは保証されている。
出力
各テストケースについて 文字を 行出力せよ、これらは問題文に対応した、4つのアスタリスクのある領域である。正解が複数ある場合、そのいずれかを出力せよ。
入出力例
6 4 ..*. .... *... .... 2 *. .* 2 .* .* 3 *.* ... ... 5 ..... ..*.. ..... .*... ..... 4 .... .... *... *...
*.*. .... *.*. .... ** ** ** ** *.* *.* ... ..... .**.. ..... .**.. ..... .... .... **.. **..
C. A-B Palindrome / A-B палиндром
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
0
', '1
', '?
'から成る文字列 が与えられます。文字列が回文になり、ちょうど 文字の'0
'とちょうど 文字の'1
'をもつように文字列 内の全ての'?
'を'0
'や'1
'に置換しなければなりません。文字'?
'のそれぞれは他とは独立に置換されることに注意してください。長さ の文字列 は全ての について等式 が真である場合、回文と言います。
例えば、 "01?????0
" の場合、次のように文字'?
'を置換することができます。
- "
01011010
" - "
01100110
"
与えられた文字列 と数 と について、文字列が回文になり、ちょうど 文字の'0
'とちょうど 文字の'1
'をもつように文字列 内の全ての'?
'を'0
'や'1
'に置換してください。
入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースの1行目には2つの整数 が与えられる。
各テストケースの2行目には文字'0
', '1
', '?
'から成る長さ の文字列 が与えられる。
全てのテストケースでの の文字列長の合計が を超えないことは保証されている。
出力
各テストケースについて次のように出力せよ。
- 文字列が回文になり、ちょうど 文字の'
0
'とちょうど 文字の'1
'をもつように文字列 内の全ての'?
'を'0
'や'1
'に置換できない場合、"-1
" - そうでない場合、置換の結果得られる文字列
文字の置換について適す方法がいくつかある場合、そのいずれかを出力せよ。
入出力例
9 4 4 01?????0 3 3 ?????? 1 0 ? 2 2 0101 2 2 01?0 0 1 0 0 3 1?1 2 2 ?00? 4 3 ??010?0
01011010 -1 0 -1 0110 -1 111 1001 0101010
D. Corrupted Array / Испорченный массив
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
- ある配列 が与えられる
- 配列 を配列 に書き込む、即ち
- 配列 の 番目の要素は配列 の数値の合計である、即ち
- 配列 の 番目の要素にある整数 を書き込む、即ち
- 配列 をシャッフルする
例えば、配列 は次のようにして得ることができます。
与えれた配列 について、最初に与えられた可能性のある配列 のいずれかを求めて下さい。
入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースの1行目には単一の整数 が与えられる。
各テストケースの2行目には 個の整数 が与えられる。
全てのテストケースでの の和が を超えないことは保証されている。
出力
各テストケースについて次のように出力せよ。
- 配列 がどんな配列 からも得られない場合、"
-1
" - そうでない場合、 個の整数
複数の配列 が存在する場合、そのいずれかを出力せよ。
入出力例
4 3 2 3 7 12 2 4 9 1 7 1 6 5 5 18 2 2 3 2 9 2 3 2 6 9 2 1
2 3 7 -1 2 2 2 3 9 1 2 6
E. Permutation by Sum / Перестановка по сумме
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
Поликарп*1は4つの整数 が与えられ、次の条件を満たすような から までの数の順列 を求めるように頼まれました。
例えば、 の場合、次のような順列が適します(全ての選択肢が記載されているわけではない)。
しかし については上記の条件に適すような順列は存在しません。
与えられた について上記の条件に合うような から の数の順列を求めるПоликарпの手助けをしてください。適当な順列が複数存在する場合、そのいずれかを出力してください。
入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースは1行から構成され、4つの整数 が与えられる。
全てのテストケースでの の和が を超えないことは保証されている。
出力
各テストケースについて次のように個別の行に出力せよ。
- 個の整数 — 上記の条件を満たすような順列が存在する場合で、そのような長さ の順列
- そうでない場合、
-1
適する順列が複数存在する場合、そのいずれかを出力せよ。
入出力例
5 5 2 3 5 5 3 4 1 3 1 2 4 2 2 2 2 2 1 1 3
1 2 3 4 5 -1 1 3 2 1 2 -1
F. Education / Образование
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
Поликарпの会社には役職が 個あり、1から順に番号が振られています。役職 の従業員は毎日 トゥグルグを得ます。役職番号が大きいほど、その従業員はより多くのトゥグルグを得ることができます。最初、Поликарпは役職 に配置され、 トゥグルグを持っています。
各日、Поликарпは2つのうち1つのことをすることができます。
例えば、 の場合、Поликарпはこのように行動することができます。
- 1日目、Поликарпは役職 にいて トゥグルグ得る。ここでは トゥグルグ持っている
- 2日目、Поликарпは役職 にいて 役職 に移る。ここでは トゥグルグ持っている
- 3日目、Поликарпは役職 にいて トゥグルグ得る。ここでは トゥグルグ持っている
- 4日目、Поликарпは役職 にいて 役職 に移る。ここでは トゥグルグ持っている
- 5日目、Поликарпは役職 にいて トゥグルグ得る。ここでは トゥグルグ持っている
- 6日目、Поликарпは役職 にいて トゥグルグ得る。ここでは トゥグルグ持っている
- 6日後、Поликарпはコンピュータを買うことができる
Поликарпが新しいコンピュータを買えるようになる最短日数を求めて下さい。
入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースの1行目には2つの整数 が与えられる、これらは会社内の役職の数と新しいコンピュータの費用である。
各テストケースの2行目には 個の整数 が与えられる。
各テストケースの3行目には 個の整数 が与えられる。
全てのテストケースでの の和が を超えないことは保証されている。
出力
各テストケースについてПоликарпが新しいコンピュータを買えるようになる最短日数を出力せよ。
入出力例
3 4 15 1 3 10 11 1 2 7 4 100 1 5 10 50 3 14 12 2 1000000000 1 1 1
6 13 1000000000
G. Short Task / Короткая задача
テストごとのメモリ制限: 512 MB
入力: 標準入力
出力: 標準出力
例えば、 となります。
与えられた数 について となるような最小の を求めて下さい。
入力
1行目には単一の整数 が与えられる。そののち 個のテストケースが続く。
各テストケースは1つの整数 で特徴づけられる。
出力
各テストケースについて以下を出力せよ。
- となるような が存在しない場合、"
-1
" - そうでない場合、
入出力例
12 1 2 3 4 5 6 7 8 9 10 39 691
1 -1 2 3 -1 5 4 7 -1 -1 18 -1