Đế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

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

Không có bình luận tại thời điểm này.

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: stdin
Output: stdout
Dạng bài
Basic
Ngôn ngữ cho phép
C
C++
Java
Kotlin
Pascal
PyPy
Python
Scratch