// Latihan bergaya OSN, Bab 10, soal 2 -- pembahasan. // // Nilai dibatasi 10^6, jadi dipakai array pencacah. Untuk setiap nilai v // yang muncul, pasangannya adalah k - v; hasilnya dihitung sekali lalu // dibagi dua karena setiap pasangan terhitung dua kali. #include using namespace std; const int BATAS = 1000000; long long cacah[BATAS + 1]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; long long k; cin >> n >> k; for (int i = 0; i < n; i++) { int x; cin >> x; cacah[x]++; } long long hasil = 0; for (int v = 1; v <= BATAS; v++) { if (cacah[v] == 0) continue; long long pasangan = k - v; if (pasangan < 1 || pasangan > BATAS) continue; if (pasangan == v) hasil += cacah[v] * (cacah[v] - 1); else hasil += cacah[v] * cacah[pasangan]; } cout << hasil / 2 << "\n"; return 0; }