Đếm cặp
Xem dạng PDFĐề bài
Cho dãy số nguyên dương gồm ~ N ~ phần tử ~ a_1, a_2, \ldots, a_N ~. In ra số lượng cặp ~ (i, j) ~ thỏa mãn:
- ~ 1 \leq i \leq j \leq N ~,
- ~ a_i + a_j^2 = X ~, với ~ X ~ cho trước.
Dữ liệu vào
- Dòng đầu gồm 2 số nguyên dương ~ N ~ và ~ X ~ (~ N \leq 10^5, X \leq 10^9 ~);
- Dòng thứ hai gồm ~ N ~ số nguyên dương ~ a_1, a_2, \ldots, a_N ~ (~ a_i \leq 500 ~).
Dữ liệu ra
- In ra một số nguyên duy nhất là số lượng cặp ~ (i, j) ~ thỏa mãn.
Ví dụ
Input:
3 5
1 2 1
Output:
1
Giới hạn
- ~ N \leq 10^5 ~, ~ X \leq 10^9 ~;
- ~ a_i \leq 500 ~.
Gợi ý
- Do ~ a_i \leq 500 ~, việc tính ~ a_j^2 ~ nằm trong giới hạn, nên có thể tối ưu hóa bằng cách duyệt kết hợp với bảng băm (hash map) hoặc cấu trúc dữ liệu phù hợp để lưu số lần xuất hiện của từng giá trị.
- Với mỗi ~ a_i ~, kiểm tra xem ~ X - a_i ~ có tồn tại dưới dạng ~ a_j^2 ~.
Bình luận
Gửi bài giải
Kotlin
PyPy
Điểm:
10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Basic
Ngôn ngữ cho phép
C
C++
Java
Pascal
Python
Scratch