Bộ ba Pitago


Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Hôm nay, Titi học định lý Pitago biết được “trong tam giác vuông bình phương cạnh huyền bằng tổng bình phương hai cạnh góc vuông”. Titi có một dãy số nguyên dương \(a_1, a_2, … a_n\), Titi muốn biết trong đó có bao nhiêu bộ 3 \((a_i, a_j, a_k)\) với i, j, k đôi một khác nhau lập thành 3 cạnh của tam giác vuông

Input:

Dòng đầu là số nguyên dương N (1<=N<=200) Dòng tiếp theo là n số nguyên dương \(a1,a2…an (1<= ai <=10^5)\)

Output

Một số nguyên không âm là số tam giác vuông lập được

Example

Input

8
6 3 8 10 6 5 3 4

Output

4

Giải thích: Có các bộ (6,8,10), (8,10,6) (3,5,4), (5,3,4).


Comments


  • 1
    NguyenDongThinh_CNTT4_K61  commented on Dec. 31, 2021, 3:25 a.m.

    //code không tối ưu

    #include <iostream>
    using namespace std;
    int main()
    {
        int n,a[100];
        cin>>n;
        int dem=0;
        for(int i=0;i<n;i++)
            cin>>a[i];
        for(int i=0;i<n-2;i++)
            for(int j=i+1;j<n-1;j++)
                for(int k=j+1;k<n;k++)
                    if((a[i]*a[i]+a[j]*a[j]==a[k]*a[k])||(a[i]*a[i]==a[j]*a[j]+a[k]*a[k])||(a[i]*a[i]+a[k]*a[k]==a[j]*a[j]))
                        dem++;
        cout<<dem;
    }