Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P148PROB - ROUND 8B - Sắp xếp tên file |
Các file trong cùng một thư mục thường được sắp xếp theo tên. Theo thứ tự trong bảng mã ASCII ta có:
0<1<...<9<A<B<...<Z<a<b...<z
Do đó tên các file sẽ theo thứ tự: A, A0, A01, A02, A1, A10, A2, AA, AB, Aa, Ab, B, B0, a, a0.
Nhưng ai cũng thấy là các tên file phải được sắp xếp theo thứ tự:
a, A, a0, A0, A01, A1, A02, A2, A10, Aa, AA, Ab, AB, B, B0
Hãy viết chương trình so sánh hai tên file theo các quy tắc cụ thể như sau:
• Hai tên file chỉ bằng nhau nếu tất cả các ký tự đều giống hệt nhau. Trong tất cả các trường hợp khác thì sẽ khác nhau.
• Một dãy liên tiếp các ký tự số trong tên file được coi như một số tạo ra bởi dãy số nguyên đó.
• Các tên file sẽ được sắp xếp theo hai pha, pha 2 chỉ thực hiện khi pha 1 không phân biệt được hai tên file.
• PHA 1 (so sánh mềm): Các tên file được so sánh theo các luật sau:
o Số đứng trước chữ (a1<aa).
o Số có giá trị nhỏ đứng trước số có giá trị lớn (a2<a10).
o Các số giống nhau thì không phân biệt được trong pha này.
o Các ký tự không phân biệt chữ hoa chữ thường (chỉ trong pha này).
• PHA 2 (so sánh cứng): Các tên file được so sánh theo các luật sau:
o Các số có cùng giá trị nhưng khác nhau về số ký tự số sẽ được so sánh theo thứ tự từ điển (01 < 1 < 02 < 2 < 10).
o Ký tự thường đứng trước ký tự hoa (a<A<b<B).
Input
Mỗi bộ test có hai dòng, mỗi dòng là một xâu mô tả tên 2 file cần so sánh. Các tên file đều không quá 255 ký tự. Input kết thúc với một dòng chứa 3 dấu thăng (###).
Output
Với mỗi bộ test, ghi ra màn hình các toán tử so sánh >,< hoặc =. (Xem thêm trong ví dụ).
Example
Input: A
A
A
b
A
a
1
b
Abc
aBD
Qwerty10
Qwerty10
100
100
010
2
010
10
A10
a2
a
aa
A
aa
10c03
10b3
1a2b3d
01a002b3d0
### Output: =
<
>
<
<
=
=
>
<
>
<
<
>
<
Được gửi lên bởi: | adm |
Ngày: | 2014-03-23 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |
hide comments
2021-01-30 06:17:03
Sao test cuối lại ra < được nhỉ. Theo luật 1 của pha 2 thì 01 < 1 mà ta. |