Số nguyên tố đầu tiên (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho dãy số A. Hãy đưa các số nguyên tố ra đầu dãy (tăng dần), các số không phải nguyên tố về cuối dãy (tăng dần).

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N số nguyên dương A[i].

Dữ liệu ra:

Dãy số đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

1 <= A[i] <= 10^6

Ví dụ:

Input:
5
4 3 7 10 2
Output:
2 3 7 4 10

Dãy số âm dương (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Mô tả: Sắp xếp dãy số sao cho: Số âm đứng trước (giảm dần về giá trị), số 0 ở giữa, số dương đứng cuối (giảm dần về giá trị).

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N số nguyên A[i].

Dữ liệu ra:

Dãy số đã sắp xếp.

Ràng buộc:

1 <= N <= 10^5

|A[i]| <= 10^9

Ví dụ:

Input:
6
2 -5 0 4 -1 0
Output:
-1 -5 0 0 4 2

Ưu tiên chính phương (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Mô tả: Sắp xếp dãy số sao cho các số chính phương đứng trước (tăng dần), các số còn lại đứng sau (tăng dần).

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N số nguyên dương A[i].

Dữ liệu ra:

Dãy số đã sắp xếp.

Ràng buộc:

1 <= N <= 10^5

1 <= A[i] <= 10^9

Ví dụ:

Input:
5
5 4 9 2 1
Output:
1 4 9 2 5

Độ dài chuỗi (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho danh sách N từ. Hãy sắp xếp các từ theo độ dài tăng dần. Nếu hai từ có cùng độ dài, giữ nguyên thứ tự xuất hiện ban đầu (hoặc sắp xếp theo từ điển nếu muốn luyện thêm, ở bài này ta chọn sắp xếp theo từ điển).

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N từ, mỗi từ cách nhau bởi dấu cách.

Dữ liệu ra:

Các từ đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

Độ dài mỗi từ <= 100

Ví dụ:

Input:
4
code c++ is fun
Output:
is c++ fun code

Tổng Chữ Số Tăng Dần (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho dãy số nguyên dương A. Hãy sắp xếp dãy số này sao cho tổng các chữ số của từng số tăng dần. Nếu tổng các chữ số bằng nhau, số nào có giá trị gốc nhỏ hơn sẽ đứng trước.

Dữ liệu vào:

Dòng 1: Số nguyên dương N.

Dòng 2: N số nguyên A[i].

Dữ liệu ra:

Dãy số sau khi sắp xếp.

Ràng buộc:

1 <= N <= 1000

1 <= A[i] <= 10^9

Ví dụ:

<h7>Input:</h7>
4 
12 30 100 23
Output:
100 12 30 23

Chữ số tận cùng (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Hãy sắp xếp dãy số theo thứ tự tăng dần của chữ số tận cùng. Nếu chữ số tận cùng bằng nhau, số lớn hơn đứng trước.

Dữ liệu vào:

Dòng 1: Số nguyên dương N.

Dòng 2: N số nguyên A[i].

Dữ liệu ra:

Dãy số đã sắp xếp.

Ràng buộc:

1 <= N <= 10^5

0 <= A[i] <= 10^9

Ví dụ:

Input:
5
15 32 104 22 9
Output:
32 22 104 15 9

Sắp xếp theo tổng các chữ số (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Sắp xếp dãy số theo thứ tự tăng dần của tổng các chữ số. Nếu tổng các chữ số bằng nhau, số nào có giá trị nhỏ hơn sẽ đứng trước.

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N số nguyên dương A[i].

Dữ liệu ra:

Dãy số đã sắp xếp.

Ràng buộc:

1 <= N <= 10^5

1 <= A[i] <= 10^9

Ví dụ:

Input:
4
12 30 100 23
Output:
100 12 30 23

Giải thích: Tổng chữ số lần lượt là 1, 3, 3, 5. Số 12 và 30 có cùng tổng là 3 nhưng 12 < 30.


Sắp xếp theo tổng số lượng các ước số (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Mô tả: Sắp xếp dãy số theo số lượng ước số của chúng giảm dần. Nếu hai số có cùng số lượng ước, số lớn hơn đứng trước.

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N số nguyên dương A[i].

Dữ liệu ra:

Dãy số đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

1 <= A[i] <= 10000

Ví dụ:

Input:
3
4 6 7
Output:
6 4 7

Giải thích: 6 có 4 ước, 4 có 3 ước, 7 có 2 ước.


Từ điển ngược (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Sắp xếp danh sách các chuỗi ký tự theo thứ tự từ điển giảm dần (Z -> A).

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N chuỗi ký tự.

Dữ liệu ra:

Các chuỗi đã sắp xếp.

Ràng buộc:

1 <= N <= 1000

Ví dụ:

Input:
3
Lan Hoa Mai
Output:
Mai Lan Hoa

Ghép số lớn nhất (cmp)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho N chuỗi số. Hãy sắp xếp các chuỗi này sao cho khi ghép chúng lại liên tiếp nhau, ta được một số tự nhiên có giá trị lớn nhất. (Ví dụ: "9" và "92", ghép "9"+"92"="992" lớn hơn "92"+"9"="929" nên "9" đứng trước).

Dữ liệu vào:

Dòng 1: N.

Dòng 2: N chuỗi số.

Dữ liệu ra:

In ra số lớn nhất tạo được (ghép các chuỗi sau khi sort).

Ràng buộc:

1 <= N <= 100

Độ dài chuỗi <= 100

Ví dụ:

Input:
2
9 92
Output:
992