QOJ.ac

QOJ

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

#3076. Trò chơi 2048

Statistics

Một số trò chơi máy tính cực kỳ thú vị, và bài toán này có thể nói về một trong số đó.

Bạn được cho một dãy các khối một chiều, mỗi khối có độ dài là một lũy thừa của hai. Mục tiêu của trò chơi là gộp tất cả các khối thành một khối lớn. Các khối được đưa ra lần lượt; với mỗi khối, bạn phải quyết định gắn nó ngay bên trái hay ngay bên phải các khối trước đó.

Mỗi khi hai khối cùng kích thước nằm kề nhau, chúng gộp thành một khối có độ dài gấp đôi độ dài của mỗi khối. Chừng nào còn có thể, các khối tạo thành lập tức tiếp tục gộp với các khối kề bên. Ví dụ, nếu dãy hiện tại là $2,4,16$, gắn $2$ vào bên trái sẽ được $8,16$, còn gắn vào bên phải sẽ được $2,4,16,2$. Tại bất kỳ thời điểm nào cũng có nhiều nhất một cặp khối có thể gộp.

Bạn đã thua trò chơi (lại nữa!) và tự hỏi liệu có cách nào để thắng hay không. Hãy phân tích dãy để tìm ra câu trả lời.

Dữ liệu vào

Dòng đầu tiên chứa số lượng bộ kiểm thử $T$. Tiếp theo là mô tả các bộ kiểm thử:

Mỗi bộ kiểm thử gồm hai dòng. Dòng đầu chứa số nguyên dương $n\le1\,000$, là độ dài của dãy. Dòng tiếp theo chứa dãy gồm $n$ độ dài khối, mỗi độ dài là một lũy thừa của hai. Tổng tất cả độ dài không vượt quá $2^{13}$.

Kích thước tệp đầu vào không vượt quá 0.4 MiB.

Dữ liệu ra

Với mỗi bộ kiểm thử, in một dòng chứa từ “no” nếu không thể thắng. Ngược lại, in một từ gồm $n$ chữ cái “l” và “r”, cho biết khối tương ứng cần được gắn vào bên trái hay bên phải. Với khối đầu tiên, lựa chọn này không quan trọng.

Ví dụ

Dữ liệu vào 1

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

Dữ liệu ra 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.