Educational Codeforces Round 104 問題文和訳
- A. Arena / Арена
- B. Cat Cycle / Круговорот котов в квартире
- C. Minimum Ties / Как можно меньше ничьих
- D. Pythagorean Triples / Пифагоровы тройки
- E. Cheap Dinner / Дешевый обед
- F. Ones / Единицы
- G. String Counting / Подсчет строк
A. Arena / Арена
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
毎分、相異なる2人のヒーローの戦いが起こります。これらのヒーローは自由に選ぶことができます(直前の1分間に戦っていたのと同じ2人のヒーローを選ぶこともできます)。
同じレベルのヒーローが戦ったとき、どちらもその戦いに勝利することはありません。異なるレベルのヒーローが戦ったとき、レベルの高い方のヒーローが勝ち、そのヒーローのレベルが 上がります。
トーナメントの勝者は、 戦以上に初めて勝利したのヒーローです(この数の戦いに勝利するヒーローがいなければトーナメントは永遠に続き、勝者は存在しないことになる、ということが起こりえます)。勝者候補とは、トーナメントの勝者となるような一連の試合が存在するヒーローのことです。
人のヒーローの内、勝者候補の人数を計算して下さい。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースは2行からなる。1行目には1つの整数 が与えられる、 はヒーローの人数である。2行目には 個の整数 が与えられます、 は 番目のヒーローの初期レベルである。
出力
各テストケースについて単一の整数を出力せよ、その整数は 人のヒーローの内の勝者候補の人数である。
入出力例
3 3 3 2 2 2 5 5 4 1 3 3 7
1 0 3
注記
この入出力例の1番目のテストケースでは、勝者候補は1番目のヒーローのみです。
この入出力例の2番目のテストケースでは、ヒーロー同士の戦いでは誰も勝つことはなく、トーナメントは永遠に続き、勝者は存在しません。
B. Cat Cycle / Круговорот котов в квартире
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
猫は寝るのが好きで、また、これらの場所が好きでなので、1時間ごとに次のように周期的にお昼寝場所を変えています。
- 猫Aは という順でお昼寝場所を変える。言い換えれば、最初の1時間はスポット にいて、それから循環的降順に場所を変えていく。
- 猫Bは という順でお昼寝場所を変える。言い換えれば、最初の1時間はスポット にいて、それから循環的昇順に場所を変えていく。
猫Bの方がずっと若く、AとBは一緒に寝ないという厳しいヒエラルキーが存在します。言い換えれば、両方の猫がスポット に行きたいとき、Aがこの場所をとり、Bは次の順番の場所に移動します( のときは へ、 のときは へ)。猫Bは自身の順番に従い、自分が飛ばしたスポット へAが去ったあとに戻ることはなく、スポット などへ移動します。
時間目に猫Bはどこいるか計算してください。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースについての唯一の行には2つの整数 が与えられる、それらはスポットの数 と時間 である。
出力
各テストケースについて単一の整数を出力せよ、その整数は 時間目に猫Bがいるスポットの番号である。
入出力例
7 2 1 2 2 3 1 3 2 3 3 5 5 69 1337
1 2 1 3 2 2 65
注記
1番目と2番目のテストケースでは であるので、次のようになります。
- 1時間目: Aはスポット に、Bは にいる。
- 2時間目: Aはスポット に、Bは に動く。
の場合、次のようになります。
- 1時間目: Aはスポット に、Bは にいる。
- 2時間目: Aはスポット に動く。Bは から に動きたいが、占有されているため に動く。
- 3時間目: Aはスポット に動く。Bは から に動きたいが、占有されているため に動く。
6番目のテストケースでは次のようになります。
- Aの各時間の位置:
- Bの各時間の位置:
C. Minimum Ties / Как можно меньше ничьих
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
試合の結果は次の2つの可能性があります。
- 試合が引き分けとなり、両チームが 点を獲得する
- 一方のチームが試合に勝ち、勝ったチームが 点を獲得し、負けたチームは 点を獲得する
チームの得点はプレーした全ての試合で得た点数の合計です。
選手権大会の終わりに全てのチームが同じ点数であるような 仮定的状況に興味があります。簡単な例として、全ての試合が引き分けで終わるようなものがありますが、引き分けの数を最小化したいです。
全てのチームが同じ得点であり、引き分けの数が最小であるような状況(各試合の結果を選択)を記述することが課題です。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
次にテストケースが続く。各テストケースは1行で1つの整数 で与えられる、 はチームの数である。
出力
各テストケースについて試合結果を表す 個の整数を次のような順序で出力せよ: 1番目の整数はチーム 対チーム の試合、2番目はチーム 対チーム で、それから 対 、 対 、...、 対 、 対 、...、 対 と続き、チーム 対チーム の試合まで対応させる。
チーム 対チーム の試合に対応する整数は が勝った場合 、 が勝った場合 、引き分けの場合 とする。
全てのチームの得点が同じで、引き分けの回数が最小でなければならない。最適解が複数存在する場合、そのうちの1つを出力せよ。全てのチームの得点が同じにする方法は常に存在することは示される。
入出力例
2 2 3
0 1 -1 1
注記
この入出力例の1番目のテストケースでは、試合が引き分けで終了し、両チームが 点を獲得します。
この入出力例の2番目のテストケースでは、チーム がチーム に勝利(チーム が 点獲得)し、チーム がチーム に敗北(チーム が 点獲得)し、チーム がチーム に勝利(チーム が 点獲得)します。
D. Pythagorean Triples / Пифагоровы тройки
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
Вася*4は直角三角形の性質を研究していて、ある3つ組整数がΠυθαγόρας数であるかを判別する公式を使っています。不幸なことに、彼は正確な公式を忘れてしまいました。彼はその公式には2乗が用いられているということだけを覚えていました。そこで、彼は という式を考え出しました。
明らかに、これは3整数がΠυθαγόρας数であるかを判別する正しい式ではありません。しかし、驚くことに、 であるため、3整数 には実際にうまくいきました。つまり、Васяの公式によりΠυθαγόρας数と判別されます。
Васяが正しい公式をみつけ(、そして彼の公式が間違っているとわかっ)たとき、「 である3整数 のうち、自分の式と、本当の定義に当てはまるΠυθαγόρας数は何組あるのだろうか?」と彼は疑問に思いました。彼はそのような3つ組を数えるように頼みました。
入力
1行目には単一の整数 が与えられる、 はテストケースの個数である。
各テストケースは1行で1つの整数 で与えられる。
出力
各テストケースについて1つの整数を出力せよ、その整数とは、本当の定義とВасяが思いついた式の両者でΠυθαγόρας数となる である3整数 の数である。
入出力例
3 3 6 9
0 1 1
注記
を満たす であるΠυθαγόρας数は だけです。そのため、 のときは答えは 、 (、)のときは答えは となります。
E. Cheap Dinner / Дешевый обед
テストごとのメモリ制限: 512 MB
入力: 標準入力
出力: 標準出力
Иванの頼めるファーストコースは 種類( 番目の値段は コイン)、セカンドコースは 種類( 番目の値段は コイン)、ドリンクは 種類( 番目の値段は コイン)、デザートは 種類( 番目の値段は コイン)あります。
相性の悪い料理もあります。ファーストコースとセカンドコースで相性の悪いものが 組、セカンドコースとドリンクで 組、ドリンクとデザートで 組存在します。
Иванは相性のいいファーストコース、セカンドコース、ドリンク、デザートをちょうど1つずつ頼みつつ、ディナーの総費用が可能な限り最小になるようにしたいです。彼がディナーの最安価オプションを見つける手伝いをしてください。
入力
1行目には4つの整数 が与えられる、はそれぞれファーストコース、セカンドコース、ドリンク、デザートの種類数である。
次に4行が続く。その1行目には 個の整数 が与えられる、 は 番目のファーストコースの値段である。次の3行にはセカンドコース、ドリンク、デザートの値段が同じ形式で与えられる 。
次の行には1つの整数 が与えられる、 はファーストコースとセカンドコースで相性の悪い組の数である。つづく 行のそれぞれには2つの整数 が与えられる、これはファーストコース とセカンドコース で相性が悪いこと表す。これらの組はすべて異なるものである。
セカンドコースとドリンクで相性の悪い組も同じ形式で与えられる。ドリンクとデザートで相性の悪い組についても同様である 。
出力
相性の良いファーストコース、セカンドコース、ドリンク、デザートの組を選ぶことができない場合、 を出力せよ。そうでなければ、1つの整数を出力せよ、その整数はディナーの最小総費用である。
入出力例
4 3 2 1 1 2 3 4 5 6 7 8 9 10 2 1 2 1 1 2 3 1 3 2 1 1 1
26
1 1 1 1 1 1 1 1 1 1 1 0 0
-1
注記
1つ目の入出力例の最適オプションはファーストコース 、セカンドコース 、ドリンク 、デザート です。
2つ目の入出力例では、ファーストコースとセカンドコースの唯一の組の相性が悪いため、ディナーを摂ることができません。
F. Ones / Единицы
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
をイチ(数字の'1'
)のみで構成される整数(負数も可)の和で表さなければなりません。例えば、 です。
全ての可能な表現のなかで、イチを使う数が最小のものを見つけなければならない。
入力
1つの整数 で与えられる単一行である。
出力
1つの整数 を出力せよ: を合計 個のイチを用いた整数(負数も可)の和として表す表現が存在するような最小の である。
入出力例
24
6
102
7
G. String Counting / Подсчет строк
テストごとのメモリ制限: 1024 MB
入力: 標準入力
出力: 標準出力
a
'、 文字の'b
'、...、 文字の'z
'があります。これらの文字から長さ の美しい文字列を作りたいです(明らかに 番目の文字を 回より多く使うことはできません)。各 は より大きいです。そのなかに より大きい奇数長の回文連続部分文字列が存在しない場合、その文字列は美しいと呼ばれます。例えば、文字列"abacaba
"は美しくありません、というのも より大きい奇数長の回文部分文字列がいくつかあるからです(例えば、"aca
")。他の例としては"abcaa
"は美しいです。
作ることができる文字列の数を計算し、答えをmodulo で出力してください。
入力
1行目は1つの整数 で与えられる。
2行目は 個の整数 で与えられる。
出力
1つの整数を出力せよ、その整数は作ることができる文字列の数をmodulo した数である。
入出力例
4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
422500
3 2 2 2 2 2 2 3 3 3 2 2 2 2 2 2 3 3 3 2 2 3 2 2 3 2 2
16900
400 348 322 247 158 209 134 151 267 268 176 214 379 372 291 388 135 147 304 169 149 193 351 380 368 181 340
287489790
*1:footballはアメリカ英語ではアメフトの可能性もありますが、イギリス英語ではサッカーを意味するためどちらの意味をとるか迷いましたが、ロシア語の問題文ではАмериканский футбол(ьный)ではなくфутбол(ьный)となっていたため、サッカーの方で訳しました
*2:古希/pyː.tʰa.ɡó.raːs/、ピタゴラス、ピュタゴラス、Pythagoras(英/paɪˈθæɡ.əɹ.əs/、米/paɪˈθæ.ɡɚ.əs/)
*3:脚などとも呼ばれる
*4:露[ˈvasʲə]、Vasya、Vasja、ヴァーシャ: 男性名Василий([vɐˈsʲilʲɪj]、Vasily、Vasilij、ヴァシーリー)の指小辞語、愛称
*5:露[ɪˈvan]、Ivan、イヴァン、イワン: 聖人ヨハネに由来する名前、John(英)、Jean(仏)、Giovanni(伊)等と同語源
*6:フルコースの1品目のこと、ここでのコースは皿の意