Lớp học thuật toán - Buổi 3. Sắp xếp
Số lớn thứ 2
Nộp bàiPoint: 1
Số lớn thứ hai
Cho mảng ~X~ gồm ~N~ số nguyên đôi một phân biệt. Tìm số lớn thứ hai trong mảng.
Input
- Dòng đầu tiên là một số nguyên dương ~N~, số phần tử của mảng ~X~ ~(2 \leq N \leq 10^6)~
- Dòng thứ hai gồm ~N~ số nguyên dương ~-10^6 \leq x_i \leq 10^8~.
Output
- In ra duy nhất số nguyên lớn thứ hai trong mảng.
Sample input 1
4
1 2 3 4
Sample output 1
3
Sample input 2
4
-1 -10 -3 -7
Sample output 2
-3
Sắp xếp mảng đẹp
Nộp bàiPoint: 1
Sắp xếp mảng đẹp
Một mảng ~X~ được gọi là "xấu" nếu tồn tại ít nhất một số bằng tổng tất cả các số đứng trước nó. Một mảng là "đẹp" nếu nó không xấu.
Ví dụ:
- Mảng ~[2, 3, 5, 7]~ là xấu: Phần tử ~5 = 2 + 3~
- Mảng ~[1, 1, 4, 6]~ là xấu: Phần tử ~1 = 1~
- Mảng ~[1, 4, 2, 5]~ là đẹp do ~1 \neq 0~, ~4 \neq 1~, ~2 \neq 1 + 4~, ~5 \neq 1 + 4 + 2~
Bạn được cho một mảng ~X~, thỏa mãn: ~1 \leq x_1 \leq x_2 \leq ... \leq x_n \leq 100~. Bạn có thể sắp xếp lại thứ tự các phần tử của mảng ~X~ để nó "đẹp".
Lưu ý rằng bạn không được phép thêm các phần tử mới hoặc xóa các phần tử đã có, bạn chỉ có thể thay đổi thứ tự các phần tử của mảng ~X~. Bạn được phép giữ nguyên mảng ~X~ không thay đổi nếu nó "đẹp".
Input
- Dòng đầu tiên là một số nguyên dương ~N~, số phần tử của mảng ~X~ ~(2 \leq N \leq 50)~
- Dòng thứ hai gồm ~N~ số nguyên dương ~ 1 \leq x_1 \leq x_2 \leq ... \leq x_n \leq 100~.
Output
- Nếu không thể sắp xếp lại để có được dãy đẹp. In ra "NO".
- Ngược lại, hãy in ra "YES".
Sample input 1
2
1 1
Sample output 1
NO
Sample input 2
3
2 4 8
Sample output 2
YES
Sample input 3
4
3 3 6 6
Sample output 3
YES
Nhỏ hơn hoặc bằng K
Nộp bàiPoint: 1
Nhỏ hơn hoặc bằng
Bạn được cho một dãy số nguyên ~A~ có độ dài ~N~ và số nguyên ~K~. Nhiệm vụ của bạn là tìm số nguyên ~x~ bé nhất nằm trong khoảng ~[1, 10^9]~ sao cho có chính xác ~K~ phần tử trong mảng đã cho nhỏ hơn hoặc bằng ~x~.
Lưu ý: Dãy đã cho có thể có các phần tử bằng nhau.
Nếu không có số nguyên ~x~ thỏa mãn, in ra ~-1~.
Input
- Dòng đầu tiên gồm 2 số nguyên dương ~N~ và ~K~ ~(1 \leq N \leq 2 * 10^5; 0 \leq K \leq N)~
- Dòng tiếp theo chứa ~N~ số nguyên ~a_1, a_2, ..., a_N~ ~(1 \leq a_i \leq 10^9)~
Output
- In ra số nguyên ~x~ thỏa mãn đề bài.
- Nếu không tồn tại số nguyên ~x~, in ra ~-1~
Sample input 1
7 4
3 7 5 1 10 3 20
Sample output 1
5
Sample input 2
7 2
3 7 5 1 10 3 20
Sample output 2
-1