[HSG3_VL_25] Xếp thẻ

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Trong một cuộc thi lập trình, Ban Tổ chức đưa ra ~N~ thẻ số, mỗi thẻ ghi một dãy chữ số (dãy gồm các chữ số liên tiếp được tạo thành từ các chữ số ~0, 1, 2, \ldots, 9~). Các thẻ số này được cắt ra từ một số tự nhiên rất lớn được viết liên tiếp và đảm bảo tồn tại ít nhất một thẻ có chữ số đầu tiên khác ~0~. Các thẻ được xáo trộn nhưng thứ tự các chữ số trên mỗi thẻ vẫn được giữ nguyên. Bằng kỹ năng của mình, các thí sinh dự thi phải tìm cách sắp xếp lại thứ tự các thẻ sao cho tạo được số theo yêu cầu trong thời gian cho phép.

Yêu cầu

Hãy sắp xếp thứ tự các thẻ số sao cho số tự nhiên thu được có giá trị lớn nhất.

Dữ liệu đầu vào

Gồm ~N + 1~ dòng:

  • Dòng đầu tiên chứa số nguyên dương ~N~ ~(N \le 10^5)~ là số lượng thẻ số;
  • ~N~ dòng tiếp theo, mỗi dòng chứa một dãy liên tiếp các chữ số có độ dài tối đa ~30~, lần lượt là các thẻ số.

Dữ liệu đầu ra

Ghi ra một số tự nhiên duy nhất theo yêu cầu.

Ràng buộc dữ liệu

  • Subtask 1: Có ít nhất 50% số test có ~N \le 10^2~, các thẻ đều có số chữ số là ~1~;
  • Subtask 2: Có ít nhất 35% số test có ~N \le 10^3~, các thẻ đều có cùng số chữ số và số chữ số tối đa là ~30~;
  • Subtask 3: Số test còn lại không có ràng buộc gì thêm.

Ví dụ

Ví dụ 1
INPUT
3
6
1
3
OUTPUT
631

Giải thích: Các số có thể tạo ra từ ~3~ thẻ là: ~613, 631, 163, 136, 316, 361~. Số lớn nhất là ~631~.

Ví dụ 2
INPUT
4
67
20
2
111
OUTPUT
67220111

Giải thích: Trong các số tạo ra từ ~4~ thẻ, số lớn nhất là ~67220111~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.