QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 512 MB Total points: 100

#9684. 打ち明け話

Statistics

「私たちが心の内を打ち明けると、悩みは薄れていく。話し手の悲しみの半分は相手に渡され、残りの半分は音の波とともに世界へ返される。悩みはこうして人々の間を伝わるたびに弱まり、やがて風とともに消えていく。」

小 I の仲間は $n$ 人おり、$i$ 番目の人 $(1\le i\le n)$ は最初、正の整数 $a_i$ の悩みを抱えています。

みんなの悩みを軽くするため、小 I はおしゃべりの会を開きました。この会では、$n$ 人が番号の小さい順に左から右へ一列に座ります。

時間が限られているため、小 I が会の中で行える打ち明け話は $k$ 回以下です。1 回の打ち明け話では、話し手 $p$ $(1\le p\le n-1)$ が右隣の人 $p+1$ に話します。これによってまず $a_{p+1}\leftarrow a_{p+1}+\frac12 a_p$ となり、その後 $a_p\leftarrow 0$ となります。ここで $\leftarrow$ は代入を表します。小 I は毎回の話し手を自由に選べます。番号 $n$ の人は他の人に打ち明け話をしないことに注意してください。

小 I はみんなの悩みをできるだけ少なくしたいので、会が終わったときの各人の悩みの最大値を、最小でいくつにできるか知りたいと考えています。

答えは厳密な値で出力する必要があります。具体的には、答えは必ず $\frac{S}{2^n}$ と表せます。ここで $S$ は $2^n\times\left(\max_{i=1}^{n}a_i\right)$ 以下の正の整数です。$S$ の二進表現を出力してください。

入力

ファイル confide.in から入力を読み込みます。

この問題には複数のテストケースがあります。 入力の最初の行は整数 $T$ で、テストケース数を表します。続いて各テストケースが順に与えられます。

各テストケースの最初の行は 2 つの整数 $n,k$ で、それぞれ人数と打ち明け話の回数の上限を表します。2 行目は $n$ 個の正の整数 $a_1,a_2,\ldots,a_n$ で、各人の最初の悩みの値を表します。

出力

ファイル confide.out に出力してください。

各テストケースについて、$S$ の二進表現を上位ビットから下位ビットの順に表す、0 と 1 からなる文字列を 1 行に出力してください。先頭に余分な 0 を付けてはいけません。

入出力例

入力 1

3
3 1
5 2 1
3 2
5 2 1
3 3
5 2 1

出力 1

100100
10100
10100

注記

最初のテストケースでは、1 番目の人に打ち明け話をさせるのが最適です。最終的な悩みの値は $(0,4.5,1)$ なので、$4.5\times 2^3=36$ の二進表現 100100 を出力します。

2 番目と 3 番目のテストケースでは、まず 2 番目の人に、次に 1 番目の人に打ち明け話をさせるのが最適です。最終的な悩みの値は $(0,2.5,2)$ なので、$2.5\times 2^3=20$ の二進表現 10100 を出力します。

入出力例 2

参加者用ディレクトリの confide/confide2.in と confide/confide2.ans を参照してください。

注記

この入出力例に含まれる 7 個のテストケースの答えは、順に $10,10,8,5,3.5,2.75,2.5$ です。

小課題

$\sum n$ を、1 つの採点用テストに含まれるすべてのテストケースの $n$ の総和とします。すべてのテストケースについて、以下が保証されます。

  • $1\le T\le 2\times 10^4$。
  • $1\le n,\sum n\le 2\times 10^4$、$1\le k\le 10^9$。
  • $\forall 1\le i\le n,\ 1\le a_i\le 10^6$。
小課題番号 配点 $\sum n\le$ $a_i\le$ $k\ge$
1 2 $30$ $10^6$ $1$
2 10 $200$
3 13 $750$
4 20 $2500$
5 17 $10^4$ $10^4$
6 16 $2\times 10^4$ $10^6$ $10^9$
7 22 $1$

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download
#2140EditorialOpen111lsj2009View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.