Maksimum İz#12280

Maksimum İz (Həll təhlili)

Problem Müəllifi:

Titan493ASST

Hazırlayan:

Titan493ASST

Redaktə edən:

Hasan Saleh (MathModel)

Həll

İddia. n>2 matris üçün, matrisi istənilən matrisə yenidən sıralamaq mümkündür.

Tək 2 \times 2 altmatrisi döndərməyi düşünün, onun fərqli konfiqurasiyasını əldə edə bilərik! Üst-üstə düşən altmatrislərin üstünlüyü ilə, 2 \times 2 altmatrislərdə müəyyən sayda döndürmə apararaq elementləri istənilən digər mövqeyə köçürə bilərik.

Beləliklə, n>2 üçün sıraladıqdan sonra ən böyük tam ədədini seçir və onların cəmini tapırıq.

n=2 üçün, cavab \max(a_{1,1} + a_{2,2} , a_{1,2} + a_{2,1}).

Komplekslik \mathcal{O}(n^2 \log n).

def solve():
    n=int(input())
    if(n==2):
        a,b=map(int,input().split())
        c,d=map(int,input().split())
        print(max(a+d,c+b))
    else:
        b=[]
        for i in range(n):
            a=list(map(int,input().split()))
            for j in a:b.append(j)
        b.sort(reverse=1)
        ans=0
        for i in range(n):
            ans+=b[i]
        print(ans)

for _ in range(int(input())):
    solve()