Tìm hai số có hiệu hai bình phương
Xem dạng PDF
Gửi bài giải
Điểm:
100,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python, Rust
Bài 1. Tìm hai số có hiệu hai bình phương
Cho một dãy số gồm ~n~ số nguyên dương ~a_1, a_2, ..., a_n~.
Với mỗi số ~a_i~, hãy tìm hai số nguyên dương ~x_i, y_i~ sao cho ~0 < x_i < a_i~, ~0 < y_i < a_i~ và ~x_i^2 - y_i^2 = a_i~. Nếu có nhiều cặp thỏa mãn, chọn cặp có ~x_i~ nhỏ nhất.
Dữ liệu vào
Dữ liệu được đọc từ tệp văn bản BAI1.INP theo cấu trúc:
- Dòng 1 chứa số nguyên dương ~n~.
- Dòng 2 chứa ~n~ số nguyên dương ~a_1, a_2, ..., a_n~. Các số trên cùng một dòng được ghi cách nhau bởi dấu cách.
Dữ liệu ra
Kết quả được ghi vào tệp văn bản BAI1.OUT, gồm ~n~ dòng. Dòng thứ ~i~ là đáp án tương ứng với ~a_i~:
- Nếu tồn tại cặp số thỏa mãn, ghi hai số nguyên theo thứ tự ~x_i, y_i~; nếu có nhiều cặp thì ghi cặp có ~x_i~ nhỏ nhất.
- Nếu không tồn tại, ghi
-1.
Ví dụ
BAI1.INP |
BAI1.OUT |
|---|---|
315 4 9 |
4 1-15 4 |
Giới hạn
- ~n ≤ 100~.
- Với mọi ~1 ≤ i ≤ n~, ~1 ≤ a_i ≤ 10^6~.
- Subtask 1: ~a_i ≤ 10^3~.
- Subtask 2: ~a_i ≤ 10^6~.
Đang tải...