CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!) 問題文和訳
- A. Good Pairs / Хорошие пары (500点)
- B. Subtract Operation / Операция вычитания (1000点)
- C. Make Equal With Mod / Сделай равным по модулю (1500点)
- D. K-good / K-хорошие (2000点)
- E. Equal Tree Sums / Одинаковые суммы деревьев (2500点)
- F. Parametric MST / Параметрическое MST (3000点)
- G. Cycle Palindrome / Циклические палиндромы (3250点)
- H. Equal LCM Subsets / Одинаковые НОК подмножеств (3750点)
- I. Neighbour Ordering / Упорядочивание соседей (4500点)
A. Good Pairs / Хорошие пары (500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
良い組を求めて下さい。 と は等しくてもよいことに注意してください。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には1個の整数 が与えられる、これは配列の長さである。
各テストケースの2行目には 個の整数 が与えられる、 は配列内の 番目の要素である。
全てのテストケースでの の和は 以下である。
出力
各テストケースについて、良い組を構成する2個の添え字 をスペース区切りで単一の行に出力せよ。 の場合も許容される。このようなペアは常に存在することは証明できる。良い組が複数存在する場合、そのいずれかを出力せよ。
入出力例
3 3 5 2 7 5 1 4 2 2 3 1 2
2 3 1 2 1 1
注記
1つ目のテストケースでは、 の場合、全ての について等式が成立します。
B. Subtract Operation / Операция вычитания (1000点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
整数 が与えられた時、その操作を施した後の、リスト内の唯一の要素が と等しくなるような 回の操作列が存在するかどうかを判定してください。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には2個の整数 が与えられる、それぞれリスト内の整数の個数と目標値である。
各テストケースの2行目には 個の整数 が与えられる。
全てのテストケースでの の和が を超えないことは保証されている。
出力
各テストケースについて、 回の操作で にすることができるのであればYES
と出力せよ。そうでなければNO
と出力せよ。
各文字はどのレターケースで出力してもよい(例えば、文字列"YES
", "Yes
", "yes
", "yEs
"は肯定とみなされる)。
入出力例
4 4 5 4 2 2 7 5 4 1 9 1 3 4 2 17 17 0 2 17 18 18
YES NO YES NO
注記
1つ目の入力例では、リストは で、目標 です。この目標を達成する方法の1つは次の通りです。まず、3番目の要素を選び、リストは となります。次に、1番目の要素を選び、リストは となります。最後に、1番目の要素を選び、リストは となります。
C. Make Equal With Mod / Сделай равным по модулю (1500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
この操作を0回以上行うことで配列の全要素を等しくすることが可能かどうか判定してください。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には1個の整数 が与えられる、配列の長さである。
各テストケースの2行目には 個の整数 が与えられる、 は配列内の 番目の要素である。
全てのテストケースでの の和は 以下である。
出力
各テストケースについて、操作後のリスト内の全要素を等しくすることができるのであればYES
と出力せよ。そうでなければNO
と出力せよ。
各文字はどのレターケースで出力してもよい(例えば、文字列"YES
", "Yes
", "yes
", "yEs
"は肯定とみなされる)。
入出力例
4 4 2 5 6 8 3 1 1 1 5 4 1 7 0 8 4 5 9 17 5
YES YES NO YES
注記
1つ目のテストケースでは、 で操作を行うことで、配列 を得、 で操作を行うことで、配列 を得ます。
2つ目のテストケースでは、全数は既に等しいです。
4つ目のテストケースでは、 で操作を行うことで、配列 を得ます。
D. K-good / K-хорошие (2000点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
正整数 が与えられたとき、 が -goodであるような を求めて下さい、もしくは、そのような が存在しないことを判別してください。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。
各テストケースは1行から成り、1個の整数 が与えられる。
出力
各テストケースについて、1行に が -good となるような の値を出力せよ、あるいは、どのような に対しても が -goodでない場合は と出力せよ。有効な の値が複数存在する場合は、そのいずれをも出力してももよい。
入出力例
5 2 4 6 15 20
-1 -1 3 3 5
注記
は次のように で割った時の余りが異なる 数の和として表せるため -goodです: 。
であり、 は で割った時、異なる余りを与えるため、 は -goodです。
であり、 は で割った時、異なる余りを与えるため、 は -goodです。
E. Equal Tree Sums / Одинаковые суммы деревьев (2500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
次の条件を満たすように、各頂点に非零整数の重みを割り当てる必要があります: 木の任意の頂点を削除した時、残りの連結成分の各頂点の重みの和が等しい。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には1個の整数 が与えられる、木の頂点数である。
続く 行の各行には2個の整数 が与えられる、頂点 と の間に辺があることを表す。与えられる辺が木を構成することは保証されている。
全てのテストケースでの の和は 以下である。
出力
各テストケースについて、1行に 個の空白区切りの整数 を出力せよ、ここでの は 頂点 に割り当てられた重みである。重みは かつ を満たさなければならない。
これらの制約を満たす解が必ず存在することは証明できる。解が複数存在する場合は、そのいずれかを出力せよ。
入出力例
2 5 1 2 1 3 3 4 3 5 3 1 2 1 3
-3 5 1 2 2 1 1 1
注記
1つ目のテストケースでは、頂点 を削除した時の残りの連結成分の和は全て であり、頂点 を削除した時の残りの連結成分の和は全て となります。他の頂点を削除した場合は、残りの連結成分は1個であるため、連結成分の和は全て等しくなります。
F. Parametric MST / Параметрическое MST (3000点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
を の最小全域木*1のコストとします。 が上に有界であるかどうかを判別し、そうである場合、その最大値を出力して下さい。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には1個の整数 が与えられる、これはグラフの頂点数である。
各テストケースの2行目には 個の整数 が与えられる。
全てのテストケースでの の和は 以下である。
出力
各テストケースについて単一行に の最大値(整数であることは証明できる)を、もしくは が上に有界でない場合はINF
を出力せよ。
入出力例
5 2 1 0 2 -1 1 3 1 -1 -2 3 3 -1 -2 4 1 2 3 -4
INF -1 INF -6 -18
G. Cycle Palindrome / Циклические палиндромы (3250点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
の順列とは から への全単射函数のことです。 が相異なる数であるとき、順列 は周期順列であるといいます。ここで は を表します。
入力
入力は複数のテストケースから成る。1行目には単一の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には1個の整数 が与えられる、これは列の大きさである。
各テストケースの2行目には 個の整数 が与えられる。
全てのテストケースでの の和は 以下である。
出力
各テストケースについて、周期順列が存在する場合、YES
と出力せよ、そうでなければNO
と出力せよ。
答えがYES
である場合、追加の1行に順列である 個の整数 を出力せよ。順列が複数存在するならば、いずれを出力してもよい。
入出力例
3 4 1 2 2 1 3 1 2 1 7 1 3 3 3 1 2 2
YES 3 1 4 2 NO YES 5 3 7 2 6 4 1
H. Equal LCM Subsets / Одинаковые НОК подмножеств (3750点)
テストごとのメモリ制限: 512 MB
入力: 標準入力
出力: 標準出力
入力
入力は複数のテストケースから成る。1行目には1個の整数 が与えられる、これはテストケースの個数である。
各テストケースについて、2個の整数 から成る1行が与えられる、それぞれ集合 と の大きさである。
次の行には 個の相異なる整数 が与えられる、これらは の要素である。
次の行には 個の相異なる整数 が与えられる、これらは の要素である。
全てのテストケースでの の和と の和は 以下である。
出力
各テストケースについて、最小公倍数が等しい2つの部分集合が存在しない場合、1行にNO
で出力せよ。
そうでない場合、1行にYES
と出力し、続く行に2個の整数 を出力せよ、これらはそれぞれ部分集合 の大きさである。
次の行には の要素である 個の整数 を出力し、その次の行には の要素である 個の整数 を出力せよ。あり得る部分集合の組が複数存在する場合、いずれを出力してもよい。
入出力例
4 3 4 5 6 7 2 8 9 10 4 4 5 6 7 8 2 3 4 9 1 3 1 1 2 3 5 6 3 4 9 7 8 2 15 11 14 20 12
NO YES 1 2 6 2 3 YES 1 1 1 1 YES 3 2 3 7 4 12 14
I. Neighbour Ordering / Упорядочивание соседей (4500点)
テストごとのメモリ制限: 256 MB
入力: 標準入力
出力: 標準出力
グラフの各単純サイクル について、以下のいずれかを満たすとき、 隣人順序は良いといいます。
与えられた について、そのグラフに良い隣接順序が存在するかどうかを判別し、存在する場合はそれを構築して下さい。
入力
入力は複数のテストケースから成る。1行目には1個の整数 が与えられる、これはテストケースの個数である。以下、テストケースの記述が続く。
各テストケースの1行目には2個の整数 が与えられる、グラフの頂点数と辺の本数である。
続く 行の各行には2個の整数 が与えられる、これは頂点 間をつなぐ辺があることを表す。グラフには自己辺も同一頂点間の多重辺も存在しないことは保証されている。
全てのテストケースでの の和と の和は 以下である。
出力
各テストケースについて、1行に、良い隣接順序が存在する場合はYES
と、そうでなければNO
と出力せよ。各文字はどのレターケース(大文字/小文字)で出力してもよい。
答えがYES
である場合、さらに、良い隣接順序について記述した 行を出力せよ。 行目には、頂点 [tex;i] の隣接頂点を順番に出力せよ。
良い隣接順序が複数存在する場合は、そのいずれかを出力せよ。
入出力例
3 5 6 0 1 0 2 1 2 2 3 3 4 4 1 2 1 0 1 6 10 0 1 2 0 0 3 0 4 1 2 1 4 2 3 2 5 3 5 4 5
YES 1 2 4 2 0 0 1 3 2 4 3 1 YES 1 0 NO