PTIT015A - ACM PTIT 2015 A - Ghép số

Link Sub: http://www.spoj.com/PTIT/problems/PTIT015A/
Người Gửi: Dương Lee

  • Problem:

Cho ba số nguyên dương a,b,c không quá 100 chữ số. Người ta muốn tạo ra một số lớn nhất có thể khi ghép các chữ số của các số này lại với nhau. Quy tắc ghép là vẫn đảm bảo số lượng chữ số như ban đầu nhưng có thể hoán đổi vị trí của chúng  
Hãy tìm cách ghép để nhận được số lớn nhất.
Input
Dữ liệu vào gồm nhiều bộ dữ liệu tương ứng với nhiều test. Dòng đầu tiên chứa số nguyên K (K≤100), là số bộ dữ liệu. Tiếp theo là K dòng, mỗi dòng là một bộ dữ liệu ghi ba số nguyên dương  (các số không vượt quá 100 chữ số).
Output
Với mỗi bộ dữ liệu ghi ra trên một dòng, mỗi dòng ghi ra một số nguyên là số lớn nhất ghép được.
Example:
Input
2
1 2 3
82 8 1
Output:
321
8821

  • Solution:

- Áp dụng mảng đánh dấu: + Đọc vào mỗi xâu. Đọc từng kí tự và chuyển nó về dạng số (dựa vào bảng mã: ASCII). + Với mỗi kí tự sẽ tương ứng với phần tử trong mảng (a[]) VD: a[0] là đại diện cho số 0, a[5] là đại diện cho số 5, a[6],... a[4] = 6 -> có 6 số 4 ... Vậy sau khi đếm và đánh dấu chỉ cần in ra các số từ lớn đến bé thôi. VD: 4 99 Sẽ có: a[4]=1, a[9] = 2; -> in ra: 994.

  • Code:

C++:



JAVA:


Share this

Related Posts

Previous
Next Post »