QOJ.ac

QOJ

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

#9684. Sich anvertrauen

Statistics

„Wenn wir uns jemandem anvertrauen, werden unsere Sorgen schwächer. Die Hälfte der Traurigkeit des Erzählenden geht an sein Gegenüber, die andere Hälfte kehrt mit den Schallwellen in die Welt zurück. So werden die Sorgen unter den Menschen weitergegeben und immer schwächer, bis sie mit dem Wind verschwinden.“

Im kleinen Freundeskreis von 小 I gibt es $n$ Personen. Die Person $i$ ($1\le i\le n$) hat anfangs Sorgen im Umfang der positiven ganzen Zahl $a_i$.

Um die Sorgen aller zu lindern, organisiert 小 I ein Treffen. Dabei sitzen die $n$ Personen in aufsteigender Reihenfolge ihrer Nummern von links nach rechts in einer Reihe.

Die Zeit ist begrenzt, daher kann 小 I während des Treffens höchstens $k$ Gespräche organisieren, in denen sich jemand einem anderen anvertraut. Bei jedem solchen Gespräch vertraut sich eine Person $p$ ($1\le p\le n-1$) ihrem rechten Nachbarn $p+1$ an. Dabei wird zuerst $a_{p+1}\leftarrow a_{p+1}+\frac12a_p$ und anschließend $a_p\leftarrow0$ ausgeführt, wobei $\leftarrow$ eine Zuweisung bezeichnet. 小 I kann die erzählende Person für jedes Gespräch beliebig wählen. Beachte, dass sich die Person mit der Nummer $n$ niemandem anvertraut.

小 I möchte die Sorgen aller möglichst gering halten. Deshalb möchte er wissen: Wie klein kann nach dem Treffen der größte endgültige Sorgenwert aller Personen sein?

Du musst den exakten Wert der Antwort ausgeben. Die Antwort lässt sich stets als $\frac{S}{2^n}$ schreiben, wobei $S$ eine positive ganze Zahl ist, die $2^n\times\left(\max_{i=1}^n a_i\right)$ nicht überschreitet. Gib die Binärdarstellung von $S$ aus.

Eingabe

Lies die Daten aus der Datei confide.in.

Diese Aufgabe enthält mehrere Testfälle. Die erste Eingabezeile enthält eine ganze Zahl $T$, die Anzahl der Testfälle. Anschließend werden die Testfälle der Reihe nach beschrieben.

Für jeden Testfall enthält die erste Zeile zwei ganze Zahlen $n,k$: die Anzahl der Personen und die Höchstzahl der Gespräche. Die zweite Zeile enthält $n$ positive ganze Zahlen $a_1,a_2,\ldots,a_n$, welche die anfänglichen Sorgenwerte der Personen beschreiben.

Ausgabe

Schreibe die Ausgabe in die Datei confide.out.

Gib für jeden Testfall in einer Zeile eine Zeichenkette aus 0 und 1 aus, die die Binärdarstellung von $S$ vom höchstwertigen zum niedrigstwertigen Bit beschreibt. Deine Ausgabe darf keine führenden Nullen enthalten.

Beispiele

Eingabe 1

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

Ausgabe 1

100100
10100
10100

Hinweis

Im ersten Testfall ist es optimal, die erste Person erzählen zu lassen. Die endgültigen Sorgenwerte sind $(0,4.5,1)$. Daher wird die Binärdarstellung von $4.5\times2^3=36$, also 100100, ausgegeben.

Im zweiten und dritten Testfall ist es optimal, zuerst die zweite und dann die erste Person erzählen zu lassen. Die endgültigen Sorgenwerte sind $(0,2.5,2)$. Daher wird die Binärdarstellung von $2.5\times2^3=20$, also 10100, ausgegeben.

Beispiel 2

Siehe confide/confide2.in und confide/confide2.ans im Teilnehmerverzeichnis.

Hinweis

Die Antworten für die sieben Testfälle dieses Beispiels sind der Reihe nach $10,10,8,5,3.5,2.75,2.5$.

Teilaufgaben

Mit $\sum n$ bezeichnen wir die Summe von $n$ über alle Testfälle eines einzelnen Tests. Für alle Testdaten gilt:

  • $1\le T\le2\times10^4$,
  • $1\le n,\sum n\le2\times10^4$, $1\le k\le10^9$,
  • $\forall 1\le i\le n,1\le a_i\le10^6$.
Teilaufgabennummer Punkte $\sum n\le$ $a_i\le$ $k\ge$
1 2 $30$ $10^6$ $1$
2 10 $200$ $10^6$ $1$
3 13 $750$ $10^6$ $1$
4 20 $2500$ $10^6$ $1$
5 17 $10^4$ $10^4$ $1$
6 16 $2\times10^4$ $10^6$ $10^9$
7 22 $2\times10^4$ $10^6$ $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.