Ghép Số Lớn (NUMCON) | Trái Táo đỏ

Nguồn

http://vn.spoj.com/problems/NUMCON/

Đề bài

Vaxia đã viết được một số lớn trên một cuộn giấy dài và muốn khoe với anh trai Petia về thành quả vừa đạt được. Tuy nhiên,  khi Vaxia vừa ra khỏi phòng để gọi anh trai thì cô em Kachia chạy vào phòng và xé rách cuộn giấy thành một số mảnh. Kết quả là trên mỗi mảnh có một hoặc vài kí số theo thứ tự đã viết.

Bây giờ Vaxia không thể nhớ chính xác mình đã viết số gì. Vaxia chỉ nhớ rằng đó là một số rất lớn.

Để làm hài lòng cậu em trai, Petia quyết định truy tìm  số nào là lớn nhất mà Vaxia đã có thể viết lên cuộn giây trước khi bị xé. Bạn hãy giúp Petia làm việc này.

Dữ liệu vào:

Ghi một hoặc nhiều dòng. Mỗi dòng ghi một dãy kí số. Số dòng không vượt quá 100. Mỗi dòng ghi từ 1 đến 100 kí số. Bảo đảm rằng có ít nhất một dòng mà kí số đầu tiên khác 0.

Dữ liệu ra:

Ghi ra số lớn nhất đã có thể viết trên cuộn giấy trước khi bị xé rách.

Ví dụ

Input Output
2 20 004 66 66220004
3 3

Hướng dẫn

• Cách 1 : Lấy tư tưởng Selection Sort, ta kiểm tra nếu A[i] + A[j] < A[j] + A[i] thì đổi chổ A[i] và A[j] với 1 ≤ i ≤ n-1 và i+1 ≤ j ≤ n.

• Cách 2 : Lấy tư tưởng Quick Sort, ta tiến hành thêm vào đuôi số đó chữ số đầu tiên của nó cho đến khi có độ dài bằng với số có độ dài lớn nhất. Khi này các số có độ dài bằng nhau ta tiến hành sắp xếp chúng giảm dần rồi ghi ra. Với mỗi số ta chỉ ghi m chữ số đầu tiên với m là độ dài ban đầu của nó.

Lời giải

Các bạn tham khảo cách 1 tại đây. Các bạn tham khảo cách 2 tại đây.

Chia sẻ

  • X
  • Facebook
Thích Đang tải...

Từ khóa » Ghép Số C++