QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 2048 MB Puntuación total: 100

#8689. Nén

Estadísticas

Infinite Compression Plan Consortium (ICPC) đã phát triển một chiến lược nén dữ liệu mới rất tốt, gọi là “Don’t Repeat Yourself” (DRY). DRY xử lý một xâu ký tự: nếu xâu chứa hai lần xuất hiện liên tiếp của cùng một xâu con, nó chỉ việc xóa một lần xuất hiện. Ví dụ, trong “alfalfa seeds”, nó có thể xóa một trong hai xâu con “e” trong “seeds”, và một trong hai xâu con “lfa” trong “alfalfa”, thu được “alfa seds”. DRY cũng có thể tận dụng các lần xóa trước đó: chẳng hạn, với “seventeenth baggage”, trước tiên nó xóa “e” lặp trong “seventeenth” và “g” lặp trong “baggage”, thu được “sevententh bagage”, rồi xóa “ent” lặp trong “sevententh” và “ag” lặp trong “bagage”, thu được “seventh bage”.

problem_8689_3ff2d9a4f9b2ede806567ffedf595aac.png

Hình ảnh được chỉnh từ Wikimedia Commons, thuộc phạm vi công cộng

Nếu có nhiều xâu con lặp liên tiếp có thể xóa, DRY phải chọn sao cho xâu cuối cùng ngắn nhất có thể. Ví dụ, với “ABBCDCABCDCD”, có hai lựa chọn: xóa “B” lặp gần đầu xâu, hoặc “CD” lặp ở cuối. Nếu xóa “B”, sau đó DRY có thể xóa “ABCDC” lặp, thu được “ABCDCD”, rồi cuối cùng xóa “CD” ở cuối để được “ABCD”. Tuy nhiên, nếu xóa “CD” ở cuối trước, sẽ còn “ABBCDCABCD”, từ đó chỉ có thể xóa “B” lặp để được “ABCDCABCD”, và xâu này không thể xóa thêm nữa. Vì vậy, lựa chọn đúng là bắt đầu bằng cách nén hai “B” và cuối cùng thu được “ABCD”.

ICPC nhận thấy DRY cho kết quả tốt nhất trên các xâu nhị phân, tức là xâu chỉ gồm các số không và một. Vì thế, họ giao cho bạn cài đặt thuật toán DRY tốt nhất có thể cho xâu nhị phân. Với mỗi xâu nhị phân bất kỳ, hãy in một xâu ngắn nhất có thể thu được bằng cách áp dụng DRY nhiều lần.

Dữ liệu vào

Đầu vào gồm một dòng chứa một xâu không rỗng có độ dài không quá $10^5$, chỉ gồm các số không và một.

Dữ liệu ra

In một dòng chứa một kết quả ngắn nhất có thể khi thực hiện DRY trên xâu đầu vào. Nếu có nhiều kết quả ngắn nhất, bất kỳ kết quả nào cũng được chấp nhận.

Ví dụ

Dữ liệu vào 1

1111

Dữ liệu ra 1

1

Dữ liệu vào 2

101

Dữ liệu ra 2

101

Dữ liệu vào 3

10110

Dữ liệu ra 3

10

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.