02/10/2018, 13:59

PTIT123A PTIT spoj – Sắp xếp 2

Nguồn đề bài: http://www.spoj.com/PTIT/problems/PTIT123A/ 1. Đề bài PTIT123A PTIT spoj Cho một danh sách chứa cả các số và các từ. Yêu cầu bạn hãy sắp xếp danh sách này tăng dần sao cho các từ theo thứ tự từ điển, các số theo thứ tự số. Hơn nữa, nếu phần tử thứ n là số thì danh ...

Nguồn đề bài: http://www.spoj.com/PTIT/problems/PTIT123A/

1. Đề bài PTIT123A PTIT spoj

Cho một danh sách chứa cả các số và các từ. Yêu cầu bạn hãy sắp xếp danh sách này tăng dần sao cho các từ theo thứ tự từ điển, các số theo thứ tự số. Hơn nữa, nếu phần tử thứ n là số thì danh sách sau khi sắp xếp phần tử thứ n cũng phải là số, nếu là từ thì vẫn là từ.

Lưu ý: Các từ chỉ gồm các chữ in thuờng trong bảng chữ cái tiếng Anh.

Input

Gồm nhiều dòng, mỗi dòng là một danh sách. Mỗi phần tử của danh sách cách nhau bởi dấu phẩy (“,”) theo sau là dấu cách, và danh sách được kết thúc bằng dấu chấm (“.”).

Dữ liệu kết thúc bởi dòng chỉ chứa một dấu chấm.

Output

Với mỗi danh sách trong dữ liệu, xuất ra danh sách đã sắp xếp thỏa mãn yêu cầu đề bài (có định dạng như trong dữ liệu).

Example

Input:
0.

banana, strawberry, orange.

banana, strawberry, orange.

10, 8, 6, 4, 2, 0.

x, 30, -20, z, 1000, 1, y.

50, 7, kitten, puppy, 2, orangutan, 52, -100, bird, worm, 7, beetle.

.
Output:
0.

banana, orange, strawberry.

banana, orange, strawberry.

0, 2, 4, 6, 8, 10.

x, -20, 1, y, 30, 1000, z.

-100, 2, beetle, bird, 7, kitten, 7, 50, orangutan, puppy, 52, worm.

2. Hướng dẫn PTIT123A PTIT spoj

– bài này ý tưởng khá đơn giản. lấy số bỏ ra 1 mảng, chữ bỏ ra 1 mảng. đồng thời cũng lưu lại vị trí là ở chữ/số thứ i nào đó thì ban đầu nó là số hay chữ (tạm gọi là mảng dd).

– sau đó sắp xếp mảng số, sắp xếp mảng chữ.

– dựa vào mảng DD, để xuất ra kết quả.

3. Code tham khảo PTIT123A PTIT spoj

0