Cütlərin Sayılması#12313

Cütlərin Sayılması (Həll təhlili)

Problem Müəllifi:

Hasan Saleh (MathModel)

Hazırlayan:

Hasan Saleh (MathModel)

Redaktə edən:

Hasan Saleh (MathModel)

Həll

Biz orta tərəfi aradan qaldıra bilərik və yalnız ən soldakı və ən sağdakı tərəfləri nəzərə alırıq.

x+y \ge x^y olan heç bir hal yoxdur, yalnız və halları üçün, burada tam ədəddir.

Biz cütlərinin hamısını çıxarırıq, sayını olaraq adlandıraq, sonra \frac{f(2) \times (f(2)-1)}{2} çıxarırıq.

Biz (1-ləri də daxil olmaqla) cütlərinin hamısını çıxarırıq, belə ki, biz çıxarırıq:

  • cütləri, yəni \frac{f(1) \times (f(1)-1)}{2}

  • cütləri, yəni f(1) \times (n-f(1)).

Sonra cavabımız hazırdır!

for _ in range(int(input())):
    n=int(input())
    a=list(map(int,input().split()))
    cnt=[0]*3
    for i in a:
        if(i<=2):cnt[i]+=1
    ans=(n*(n-1))//2
    ans-=(cnt[2]*(cnt[2]-1))//2
    ans-=(cnt[1]*(cnt[1]-1))//2
    ans-=(cnt[1])*(n-cnt[1])
    print(ans)