Bedao Mini Contest 21 - Tìm số

Xem dạng PDF

Gửi bài giải


Điểm: 0,10 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một số nguyên dương ~n~. Tìm số nguyên ~x~ nhỏ nhất sao cho ~x \ge n~ và tổng số lần xuất hiện các chữ số ~0~ đến ~9~ trong số ~x~ và trong số ~x^2~ tối đa 2 lần. Nếu không tồn tại số ~x~, in ra ~-1~.

Input

Nhập vào ~t~ ~(1 \le t \le 10^5)~ truy vấn,

Mỗi truy vấn là một số nguyên dương ~n~ ~(1 \le n \le 4 \times 10^6)~.

Output

Với mỗi truy vấn, in ra số nguyên ~x~ nhỏ nhất thoả mãn đề bài. Nếu không tồn tại số ~x~, in ra ~-1~.

Scoring

Subtask Điểm Giới hạn
1 ~50~ ~t \leq 5~
2 ~50~ Không có ràng buộc gì thêm

Sample Input 1

10
1
2
3
4
5
6
7
8
9
10

Sample Output 1

1
2
3
4
5
6
7
8
9
12

Sample Input 2

2
1000000
3000000

Sample Output 2

1032857
3081672

Notes

Nếu ~n = 10~, ta thấy giá trị ~x = 12~ là đáp án. Vì ~x = 12~ và ~x^2 = 144~ không chứa chữ số nào xuất hiện quá ~2~ lần. Nếu ~x = 11~ và ~x^2 = 121~ thì chữ số ~1~ xuất hiện ~4~ lần, do đó không thoả mãn.

Nếu ~n = 1000000~, ta thấy giá trị ~x = 1032857~ là đáp án. Vì ~x = 1032857~ và ~x^2 = 1066793582449~ không chứa chữ số nào xuất hiện quá ~2~ lần.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -28
    Kaito  đã bình luận lúc 13, Tháng 9, 2023, 2:11 sửa 2

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.