Điểm:
200
Thời gian:
1.0s
Bộ nhớ:
500M
Input:
bàn phím
Output:
màn hình
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à \(1 \lt n \leq 5000\). Một bộ ba số được gọi là bộ số tam giác, nếu ba số này tạo thành ba cạnh của một tam giác nào đó.
Yêu cầu: Hãy đếm xem trong dãy \(A\) có bao nhiêu bộ số tam giác (\(A_i, A_j, A_k\)) với \(i, j, k\) đôi một khác nhau.
Input
- Dòng đầu là số \(n\).
- Dòng tiếp theo là các phần tử của dãy \(A\), mỗi phần tử cách nhau một dấu cách.
Output
- Ghi ra số lượng bộ số tam giác.
Scoring
- Subtask \(1\) (\(30\%\) số điểm): \(n \leq 100\).
- Subtask \(2\) (\(30\%\) số điểm): \(100 \lt n \leq 1000\).
- Subtask \(3\) (\(40\%\) số điểm): \(1000 \lt n \leq 5000\).
Example
Test 1
Input
5
4 3 1 5 7
Output
3
Bình luận
Dùng kỹ thuật Tow Pointer để có O(n^2)!
2 bình luận nữa