Đếm cặp

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hôm nay Tèo được học về luỹ thừa của \(2\). Qua bài học, Tèo được biết rất nhiều ứng dụng của luỹ thừa của \(2\) như số cách chọn một tập con của tập hợp, biểu diễn số nguyên dưới dạng nhị phân, ... Tuy đã hết chương trình nhưng vẫn còn chút thời gian, cô giáo quyết định ra một bài tập cho lớp làm. Cô viết lên bảng một vài số nguyên và yêu cầu lớp đếm số cách nhóm hai số khác nhau sao cho tổng của chúng là một luỹ thừa của \(2\). Tèo nhanh chóng nhìn vào bảng và viết ra kết quả đến mức cô giáo phải ngạc nhiên. Bạn hãy giúp cô kiểm tra xem kết quả của Tèo có đúng không nhé.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) \((1 \leq n \leq 10^5)\) là số lượng số mà cô giáo viết lên bảng.
  • Dòng tiếp theo chứa \(n\) số nguyên \(a_1, a_2, \ldots a_n\) \((1 \leq a_i \leq 10^9)\) là các số mà cô viết.

Output

  • Một số nguyên duy nhất là số lượng cặp có tổng là một luỹ thừa của \(2\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \leq 10^3\).
  • Subtask \(2\) (\(30\%\) số điểm): \(a_i \leq 10^3\).
  • Subtask \(3\) (\(40\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
6
4 7 1 5 4 9
Output
3
Note

\(3\) cặp thoả mãn là \((a_1, a_5)\), \((a_2, a_3)\)\((a_2, a_6)\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.