Ước số và tổng ước số
Nộp bàiPoint: 100
Cho số nguyên dương N (N <= 2 * 10~^9~).
Yêu cầu: Đếm số lượng ước số của N và tổng các ước số của N.
Input: Số nguyên dương N
Output: Chứa hai số nguyên là số lượng ước số và tổng các ước của N.
Ví dụ:
Input Output
10 4 18
Giải thích: Số 10 có ước là 1 2 5 10 và tổng 1 + 2 + 5 + 10 = 18
Vị trí ban đầu
Nộp bàiPoint: 100
Cho mảng ~A~ gồm ~n~ phần tử phân biệt. Gọi ~B~ là mảng ~A~ sau khi sắp xếp không giảm.
Gọi ~C_i~ là vị trí trên mảng ~A~ sao cho ~B_i = A_{C_i}~.
Hãy tính mảng C, hay nói cách khác là hãy cho biết vị trí ban đầu trên mảng A của mỗi phần tử trên B.
Input:
- Dòng đầu tiên in ra số n (n <= 100000).
- Dòng thứ hai in ra n số nguyên A1, A2, ..., An (1 <= Ai <= 10^9).
Output: In ra một dòng duy nhất gồm n số nguyên C1, C2, ..., Cn.
Scoring:
- Subtask 1 (30% số điểm): n <= 1000
- Subtask 2 (30% số điểm): Ai <= 1000000
- Subtask 3 (40% số điểm): không có giới hạn nào khác
Ví dụ:
Input Output
3 3 1 2
2 3 1
Ước chung
Nộp bàiPoint: 100
Bạn được cho một mảng gồm n guyên dương. Việc của bạn là tìm hai số nguyên sao cho ước chung lớn nhất của chúng càng lớn càng tốt.
Input:
- Dòng đầu tiên là một số nguyên n: kích thước của mảng.
- Dòng thứ hai chứa n số nguyên x1, x2, ..., xn: các phần tử của mảng.
Output: In ra ước chung lớn nhất tối đa.
Constraints:
- 2 <= n <= 2 * 10~^5~.
- 1 <= xi <= 10~^6~.
Ví dụ:
Input Output
5 7
3 14 15 7 9
Số nhỏ thứ k
Nộp bàiPoint: 100
Cho một dãy gồm N số nguyên dương và số K (K <= N). Hãy in ra số nhỏ thứ K trong dãy.
Input:
- Dòng đầu chứ số N, K.
- Dòng thứ hai chứa N số nguyên dương A1, A2, ..., An.
Output: Một dòng chứa dãy số nhỏ thứ K trong dãy.
Ví dụ:
Input Output
6 4 91
91 451 43 3 452 54
Biến đổi số
Nộp bàiPoint: 100
Vào một buổi sáng, rất tình cờ Nam nhìn thấy một số nguyên dương N trên đường từ nhà đến trường. Vì Nam rất thích số 30 nên Nam muốn biến đổi số N thành số M có dạng là số lớn nhất và là bội của số 30 bằng cách thay đổi vị trí của các chữ số trong số N mà Nam nhìn thấy.
Bạn hãy hỗ trợ Nam bằng cách viết chương trình để tìm số M (nếu nó tồn tài).
Input: Gồm một dòng duy nhất chứa số nguyên N (N có tối đa là 10^5 chữ số).
Output: In ra số M tìm được. Nếu không tồn tại M thì in ra -1
Ví dụ:
Input Output
30 30
----------
102 210
----------
3333333333333333333333333333 -1