QOJ.ac

QOJ

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

#3076. 2048 遊戲

Statistics

有些電腦遊戲非常有趣,而這道題可能正與其中一款有關。

給定一串一維方塊,每個方塊的長度都是二的冪。遊戲的目標是將所有方塊合併成一個大方塊。方塊會依序出現,每次你都必須決定將它緊貼在先前方塊的左邊,還是右邊。

每當兩個大小相同的方塊相鄰,它們就會合併成一個長度為原來兩倍的方塊。注意,只要可以合併,產生的方塊就會立即與相鄰的方塊繼續合併。例如,若目前的方塊序列為 $2,4,16$,將 $2$ 接在左邊會得到 $8,16$,接在右邊則得到 $2,4,16,2$。注意,任何時刻至多只有一對可以合併的方塊。

你又輸掉了遊戲,想知道是否曾經存在獲勝的方法。請分析這個序列,找出答案。

輸入格式

輸入的第一行包含測試案例數 $T$。接著是各測試案例的描述:

每個測試案例包含兩行。第一行包含一個正整數 $n\le1\,000$,表示序列的長度。下一行包含 $n$ 個方塊長度,每個長度都是二的冪。所有長度的總和不超過 $2^{13}$。

輸入檔案的大小不超過 0.4 MiB。

輸出格式

對每個測試案例輸出一行。若不可能獲勝,輸出單字「no」。否則,輸出由 $n$ 個字母「l」和「r」組成的字串,表示對應的方塊應接在左邊或右邊。注意,第一個方塊放在哪邊並無影響。

範例

輸入格式 1

3
9
2 8 4 1 1 4 4 4 4
5
2 16 4 8 2
3
2 2 2

輸出格式 1

rrrlllrrr
no
no

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.