Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
SOCP.INP
Output:
SOCP.OUT
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Sau khi làm xong các bài tập thầy giáo giao, An quay sang đố Bình giải bài toán sau:
Cho dãy gồm ~n~ số nguyên dương ~a_1, a_2, ..., a_n~. Tìm ba số chính phương nhỏ nhất không xuất hiện trong dãy số đã cho. Biết số chính phương là số tự nhiên mà có thể viết dưới dạng bình phương của một số tự nhiên khác. Ví dụ: 0, 1, 2, 4, 9, 16, 25, … là các số chính phương, còn các số 2, 3, 5, 8, .. không là số chính phương.
Yêu cầu:
Hãy lập trình giúp Bình tìm ba số chính phương nhỏ nhất không xuất hiện trong dãy số.
Dữ liệu:
Cho từ tệp văn bản SOCP.INP gồm hai dòng:
- Dòng thứ nhất ghi số nguyên dương ~n~ (~1≤n≤10^6~)
- Dòng thứ hai ghi ~n~ số nguyên dương ~a_1, a_2, ..., a_n~ (~0<a_i≤10^{12},1≤i≤n~), các số ghi cách nhau một dấu cách.</li>
Kết quả:
Ghi ra tệp văn bản SOCP.OUT một dòng duy nhất ghi ba số chính phương nhỏ nhất không xuất hiện trong dãy số theo thứ tự tăng dần, các số ghi cách nhau một dấu cách.
Ví dụ:
SOCP.INP
7
0 3 6 7 10 25 4
SOCP.OUT
1 9 16
Giới hạn:
- 50% số test ứng với 50% số điểm có ~n≤10^3,0≤a_i≤10^4~.
- 30% số test ứng với 30% số điểm có ~10^3<n≤10^6, 0≤a_i≤10^6~.</li>
- 20% số test ứng với 20% số điểm có ~0≤a_i≤10^{12}~.
Bình luận