Lớp học thuật toán - Buổi 3. Sắp xếp

Số lớn thứ 2

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

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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