Submit solution
Points:
400 (partial)
Time limit:
1.0s
Memory limit:
977M
Input:
stdin
Output:
stdout
Author:
Problem type
Cho dãy số A gồm n phần tử nguyên dương A_1,A_2,…,A_n. Mỗi phần tử có giá trị không vượt quá 10^9 và n≤ 10^5. Một cặp số được gọi là cặp tương đồng với x, nếu cặp số này có tổng bằng số x cho trước nào đó.
Yêu cầu: Hãy đếm xem trong dãy số A có bao nhiêu cặp số (A_i;A_j) tương đồng với x (có nghĩa là A_i+ A_j=x) với i<j.
Input
- Dòng đầu tiên chứa dãy số n,x (n≤10^5,x≤10^6).
- Dòng thứ 2 chứa n phần tử của dãy số A (A_i≤10^9).
Output
- Ghi ra một số nguyên là cặp đôi tương đồng của dãy số.
Example
Test 1
Input
7 6
1 2 4 3 4 5 3
Output
4
Comments
a ơi pas e chạy dc mà nộp bị lỗi phân khúc do sao ạ
hint 1 là nhanh nhất r
uk
hmm
Spoiler Alert
Hint 1
Hint 2
Hint 3
Reference AC code | O(n log n) time | O(n) auxiliary space | STL, Combinatorics
Mình bị lỗi phân đoạn, có bình thường không vậy?!
Bạn thử
C++23
hayC++26
chưa 🐧bạn ơi mình có cập nhật lỗi rồi, phía trên nha bạn
(đã thu hồi)
readInt()
là hàm nhận một số nguyên thôi bạn ạThis comment is hidden due to too much negative feedback. Click here to view it.
Mình xin lỗi nhé, ý mình là
được rồi, chuẩn luôn
Còn 1 cách nhanh hơn là đếm phân phối ấy anh
Ah uk, lúc đầu anh không để ý kĩ
This comment is hidden due to too much negative feedback. Click here to view it.