Trong một ngôi làng nhỏ có tên là Prime Ville, người dân nơi đây có truyền thống tôn vinh những con số nguyên tố. Hằng năm, vào ngày lễ hội lớn nhất làng, dân làng sẽ tổ chức một cuộc thi để tìm ra những con số nguyên tố đặc biệt. Người chiến thắng sẽ được nhận danh hiệu "Nhà Toán Học Tài Ba". Năm nay, bài toán mà trường làng đưa ra như sau: "Hãy tìm ra số nguyên tố nhỏ thứ ~K~ trong danh sách số nguyên tố tìm được từ ~N~ số nguyên mà ta đã chuẩn bị".
Yêu cầu
Em hãy viết chương trình để giúp dân làng tìm ra kết quả câu đố nhanh nhất.
Dữ liệu đầu vào
Gồm hai dòng:
- Dòng đầu tiên ghi hai số nguyên ~N~ và ~K~ ~(1 \le N \le 10^5;\ 1 \le K < N)~.
- Dòng tiếp theo ghi ~N~ số nguyên ~A_i~ ~(0 < A_i \le 10^9)~.
Chú ý: Do đề không nói rõ, trong bộ test tôi đã giả định rằng các số đều khác nhau đôi một. Tôi cũng đã điều chỉnh bộ test phù hợp để có thể AC câu này trong thời gian xấp xỉ 1 giây. Tuy nhiên, nếu trong trường hợp tệ hơn, đặc biệt là khi ~K~ lớn và số nguyên tố xuất hiện dày đặc, việc sử dụng thuật toán có độ phức tạp là ~\mathcal{O}(N\sqrt{X})~ là chưa đủ tốt để đảm bảo thời gian chạy xấp xỉ 1 giây (nếu không dùng thuật toán Rabin-Miller)
Dữ liệu đầu ra
Gồm một số nguyên duy nhất là số nguyên tố nhỏ thứ ~K~ tìm được, nếu không tìm được, in ra ~-1~.
Ràng buộc dữ liệu
- Có 50% số điểm tương ứng với 50% số test thỏa ~1 \le N \le 20;\ 0 < A_i \le 10^4~.
- Có 50% số điểm tương ứng với 50% số test thỏa ~N \le 10^5;\ 0 < A_i \le 10^9~.
Ví dụ
Ví dụ 1
INPUT
10 3
2 8 5 3 7 10 11 4 6 13
OUTPUT
5
Bình luận
pragma GCC optimize("03,unroll-loops")
pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
cách này không bị tle mà ac full nhé , có mấy chỗ lỗi kí tự thì tự xử nhé:vv