TS10 Cần Thơ 2026 - Tam giác

Xem dạng PDF

Gửi bài giải

Điểm: 17,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

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~ và ~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 là kết quả tìm được.

Scoring

Subtask Điểm Ràng buộc
1 ~70\%~ ~3 \le n \le 100~
2 ~30\%~ ~3 \le n \le 2000~

Sample Input 1

5
6 3 4 2 5

Sample Output 1

7

Notes

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

Hãy đọc nội quy trước khi bình luận.



  • 0
    quankidlo  đã bình luận lúc 6, Tháng 11, 2026, 13:42

    Gửi tôi của năm 2030,

    Chào cậu, phiên bản tương lai của tôi bốn năm sau.

    Vào khoảnh khắc tôi đang viết những dòng này, thế giới của tôi xoay quanh những dòng code C++, những đêm loay hoay tìm thuật toán tối ưu, và những bài toán tưởng chừng bế tắc nhưng rồi lại sáng tỏ sau một dấu phẩy hay một chiếc vòng lặp đúng chỗ. Tôi không biết năm 2030, cậu đang đứng ở đâu, đang đối mặt với những thử thách nào, hay đã chạm đến những cột mốc gì mà tôi lúc này vẫn chỉ dám mơ ước.

    Nhưng tôi hy vọng, dù thời gian có dịch chuyển thế nào, cậu vẫn giữ được ngọn lửa đam mê và sự kiên trì thuở ban đầu.

    Cuộc sống ngoài kia chắc chắn không giống một bài toán trên Online Judge—nó không có sẵn các giới hạn thời gian 1.0 giây, không có sẵn test case đúng sai rõ ràng, và đôi khi tràn ngập những "bug" cuộc đời mà không một trình biên dịch nào có thể giúp cậu tìm ra lỗi. Sẽ có những lúc mọi thứ chệch hướng, những dự định đổ vỡ, hay những áp lực khiến cậu muốn dừng lại. Những lúc ấy, mong cậu hãy nhớ lại cách chúng ta từng đối diện với một lỗi Segmentation Fault: bình tĩnh đọc lại từng dòng, tìm nguyên nhân, sửa chữa và biên dịch lại từ đầu.

    Mỗi nỗ lực nhỏ ngày hôm nay, từng dòng logic cậu viết, từng bài học cậu góp nhặt qua sự kiên trì và niềm tin, chính là những khối lệnh đầu tiên xây nên tương lai của cậu ở năm 2030.

    Nếu lúc này cậu đã đạt được những gì mình muốn, chúc mừng cậu, nhưng đừng ngủ quên trên chiến thắng. Còn nếu mọi chuyện chưa được như ý, hãy coi đó chỉ là một bài test case khó chưa tìm ra lời giải tối ưu. Cậu có quyền chậm lại, nhưng đừng bao giờ bỏ cuộc.

    Hãy sống một cách trọn vẹn, tối ưu hóa từng khoảnh khắc, và luôn là phiên bản kiên cường, tử tế nhất.

    Cố lên nhé!

    Từ tôi của năm 2026.


  • -1
    Tung_skibidi  đã bình luận lúc 20, Tháng 8, 2026, 0:51

    pls code🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏


    • 0
      bennie15025  đã bình luận lúc 8, Tháng 11, 2026, 15:49

      include<bits/stdc++.h>

      using namespace std; typedef long long ll; const ll ma=2005; ll n,a[ma],ans; int main() { ios::syncwithstdio(0); cin.tie(nullptr); cin>>n; for(ll i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); for(ll i=1;i<n-1;i++) for(ll j=i+1;j<n;j++) { ll l=j+1,r=n,res=j; while(l<=r) { ll mid=l+(r-l)/2; if(a[i]+a[j]>a[mid]) { res=mid; l=mid+1; } else r=mid-1; } ans+=res-j; } cout<<ans<<"\n"; }


    • 0
      tri290612  đã bình luận lúc 2, Tháng 9, 2026, 9:24

      include <bits/stdc++.h>

      using namespace std;

      int main() { iosbase::syncwith_stdio(false); cin.tie(NULL); long long n; cin>>n; vector <long long> a(n); for (long long &x:a) cin>>x; long long ans=0; for (long long i=0; i<n; i++){ for (long long j=i+1; j<n; j++){ for (long long k=j+1; k<n; k++){ if(a[i]+a[j]>a[k] && a[j]+a[k]>a[i] && a[k]+a[i]>a[j]) ans++; } } } cout<<ans; return 0; }


  • 1
    HH_Vietlong_08042012  đã bình luận lúc 26, Tháng 7, 2026, 4:44

    sub2 kiểu gì mà 3 for cũng được v ad


  • 3
    dinhthai  đã bình luận lúc 6, Tháng 7, 2026, 13:49

    ad ơi, bài này e trâu nhưng lại đc 100% ạ, nhờ ad kiểm tra test với ạ


    • 1
      GB1  đã bình luận lúc 21, Tháng 7, 2026, 15:50

      đề này chắc test input còn nhỏ nên chưa TLE


    • 2
      justme_tann  đã bình luận lúc 16, Tháng 7, 2026, 14:33

      chac ko sao dau


    • 2
      Ranybui  đã bình luận lúc 14, Tháng 7, 2026, 19:57

      chắc v á