Tam Giác (TS10 Cần Thơ 2026)

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: 1100 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho \(n\) đoạn thẳng lần lượt có độ dài là \(a_1, a_2, \dots, a_n\). Một cách chọn ba đoạn trong \(n\) đoạn này để tạo thành một tam giác là chọn ba giá trị \(a_i, a_j, a_k\) với \(1 \le i < j < k \le n\) sao cho \(a_i + a_j > a_k\), \(a_j + a_k > a_i\)\(a_k + a_i > a_j\).

Yêu cầu

Hãy lập trình xác định số cách chọn ba đoạn trong \(n\) đoạn này để tạo thành một tam giác.

Input

  • Dòng đầu chứa một số nguyên \(n\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\), mỗi số có giá trị không vượt quá \(10^9\).

Output

  • Ghi ra một số nguyên duy nhất là kết quả tìm được.

Constraints

  • \(70\%\) số điểm tương ứng với các test có \(3 \le n \le 100\).
  • \(30\%\) số điểm tương ứng với các test có \(3 \le n \le 2000\).

Example

Test 1

Input
5
6 3 4 2 5
Output
7
Note

Các bộ ba được chọn: \((6, 3, 4), (6, 3, 5), (6, 4, 5), (6, 2, 5), (3, 4, 2), (3, 4, 5), (4, 2, 5)\).

Bình luận (2)

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