BỘ BA TỐT

Cho một dãy số \((a_{n})\) gồm \(n\) số nguyên \(a_{1},a_{2},\ldots,a_{n}\). Dãy số \((b_{n})\) được tạo ra từ \((a_{n})\) bằng cách đổi dấu tất cả các phần tử trong dãy số \((a_{n})\). Một bộ số \((a_{i},a_{j},b_{k})\) được gọi là bộ ba tốt nếu \(a_{i} + a_{j} + b_{k} = 0\), trong đó \(a_{i},a_{j}\ (i
eq j)\)
là các phần tử trong dãy số \((a_{n}),\) \(b_{k}\) là phần tử trong dãy số \((b_{n})\).

Yêu cầu: Tính số lượng các bộ ba tốt thỏa mãn chúng không trùng nhau.

Lưu ý: Bộ ba tốt \((a_{i1},a_{j1},b_{k1})\)\((a_{i2},a_{j2},b_{k2})\) được gọi là trùng nhau khi và chỉ khi cặp số \({(a}_{i1},a_{j1})\)\({(a}_{i2},a_{j2})\) là hoán vị của nhau và \(k_{1} = k_{2}\). Mỗi hoán vị của một dãy số là một cách sắp xếp các phần tử trong dãy số theo trật tự nào đó. Ví dụ, các hoán vị của dãy số \(\{ - 1,0\}\)\(\{ - 1,0\}\), \(\{ 0, - 1\}\), hoán vị của dãy số \(\{ 2,\ 2\}\)\(\{ 2,\ 2\}\).

Dữ liệu vào:

- Dòng thứ nhất là số nguyên dương \(n\ (3 \leq n \leq 10^{3})\).

- Dòng thứ hai gồm \(n\) số nguyên \(a_{1},a_{2},\ldots,a_{n}\) \(( - 10^{9} \leq a_{i} \leq 10^{9})\), các số cách nhau bởi dấu cách.

Kết quả ra:

  • Một dòng chứa số lượng bộ ba tốt thỏa mãn yêu cầu. Trong trường hợp không tồn tại bộ ba tốt thì đưa ra số 0.

Ví dụ:

Input Output Giải thích
5
1 2 3 5 68
2 Dãy số (an) là: {1, 2, 3, 5, 68}
Dãy số (bn) là: {-1, -2, -3, -5, -68}
Có 4 bộ ba tốt là: (a1, a2, b3) = (1, 2, -3), (a2, a1, b3) = (2, 1, -3),
(a2, a3, b4) = (2, 3, -5), (a3, a2, b4) = (3, 2, -5)
Trong đó: (a1, a2, b3), (a2, a1, b3) trùng nhau,
(a2, a3, b4), (a3, a2, b4) trùng nhau.
Nên có tất cả 2 bộ ba tốt không trùng nhau.
3
-1 0 -1
2 Dãy số (an) là: {-1, 0, -1}
Dãy số (bn) là: {1, 0, 1}
Có 8 bộ ba tốt là:
(a1, a2, b1), (a2, a1, b1), (a2, a3, b1), (a3, a2, b1),
(a1, a2, b3), (a2, a1, b3), (a2, a3, b3), (a3, a2, b3),
Trong đó: (a1, a2, b1), (a2, a1, b1), (a2, a3, b1), (a3, a2, b1) trùng nhau
(a1, a2, b3), (a2, a1, b3), (a2, a3, b3), (a3, a2, b3) trùng nhau
Nên có tất cả 2 bộ ba tốt không trùng nhau.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/63)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38904

Lưu Hải Phong - 2020
[email protected]