Universal Cup Judging System

Universal Cup

حد الوقت: 2.0 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓
الإحصائيات

Som du vet deltar du i Chinese Constructive Problem Contest (CCPC), och utan tvekan är det arrangerande lärosätet, Sun Yat-sen-universitetet, i egenskap av Konstruktionens Kungarike, mycket angeläget om att du ska anta några relaterade utmaningar.

Lilla U är student i Konstruktionens Kungarike. På en algoritmföreläsning lärde sig Lilla U om MCOP (Matrix Chain Ordering Problem). Här är en introduktion till MCOP:

Givet en följd av positiva heltal med längd $n \ge 3$, $[w_1, w_2, \dots, w_n]$, som indata till algoritmen. Följande formel multiplicerar $n - 1$ matriser för att slutligen erhålla en ny matris:

$$M = M_1 \times M_2 \times \cdots \times M_{n-1}$$

där $M_i$ är en matris av storlek $w_i \times w_{i+1}$. Matrismultiplikation uppfyller den associativa lagen, så att ändra multiplikationsordningen ger samma slutmatris $M$, men antalet operationer kan variera. Målet med problemet är att hitta en optimal multiplikationsstrategi bland $(n - 2)!$ möjliga strategier, så att det totala antalet operationer som krävs för matrismultiplikationen minimeras. Här antas att multiplikation av matriser av storlekarna $p \times q$ och $q \times r$ ger en matris av storlek $p \times r$ och kräver $pqr$ operationer. Det minsta totala antalet operationer som krävs för att beräkna $M$ under den optimala strategin betecknas med $\text{MCOP}([w_1, w_2, \dots, w_n])$.

Lilla U har lärt sig hur man löser detta problem med tillräckligt bra tidskomplexitet på lektionen, men som student i Konstruktionens Kungarike kom Lilla U naturligtvis att tänka på följande problem:

Givet ett heltal $X$ som uppfyller $1 \le X \le 10^9$. Du ska konstruera en heltalsföljd av längd $l$, $[a_1, a_2, \dots, a_l]$, som uppfyller följande krav:

  • $3 \le l \le 6$;
  • För alla $i \in [1, l]$ gäller $1 \le a_i \le 4000$;
  • $\text{MCOP}([a_1, a_2, \dots, a_l]) = X$.

Lilla U har redan implementerat en rättare (checker) med hjälp av algoritmen från lektionen, och det du behöver göra är att lösa detta konstruktionsproblem.

Indata

Detta problem innehåller flera testfall. Den första raden i indatan innehåller ett heltal $T$ ($1 \le T \le 500$), som representerar antalet testfall.

För varje testfall består indatan av en enda rad med ett heltal $X$ ($1 \le X \le 10^9$), vars betydelse har angivits i problemtexten.

Utdata

För varje testfall: skriv först ut en rad med ett heltal $l$ ($3 \le l \le 6$), som representerar längden på den konstruerade följden. Skriv sedan ut en rad med $l$ heltal, som representerar den konstruerade följden.

Det kan bevisas att det för varje indata $X$ alltid finns en konstruktion som uppfyller kraven. Om det finns flera konstruktioner som uppfyller kraven, skriv ut vilken som helst av dem.

Exempel

Exempelindata 1

2
90
10

Exempelutdata 1

4
5 3 2 6
3
1 1 10

Notera

För det första testfallet är den konstruerade följden $[5, 3, 2, 6]$, vilket representerar behovet av att utföra en kedjemultiplikation av tre matriser med storlekarna $5 \times 3$, $3 \times 2$ och $2 \times 6$. Betrakta två multiplikationsstrategier:

  • Multiplicera först $M_1$ och $M_2$ för att få en matris av storlek $5 \times 2$, och multiplicera sedan med $M_3$, vilket motsvarar uttrycket $(M_1 \times M_2) \times M_3$. Det totala antalet operationer är då $5 \times 3 \times 2 + 5 \times 2 \times 6 = 90$;
  • Multiplicera först $M_2$ och $M_3$ för att få en matris av storlek $3 \times 6$, och multiplicera sedan med $M_1$, vilket motsvarar uttrycket $M_1 \times (M_2 \times M_3)$. Det totala antalet operationer är då $3 \times 2 \times 6 + 5 \times 3 \times 6 = 126$.

Här är målet att minimera det totala antalet operationer, så $\text{MCOP}([5, 3, 2, 6]) = \min(90, 126) = 90$.

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.