문제 링크

문제 설명

예시

[input]
2 2
2 1
[output]
3

[input]
3 5
1 1 1

[output]
0

[input]
10 998244353
10 9 8 7 5 6 3 4 2 1

[output]
185297239

사고의 흐름

모범답안

1. 여기를 누르면 답이 보입니다
def answer(arr, k):
    _mod = (10**9+7)
    left = 0
    right = 0
    for i in range(len(arr)):
        for j in range(i, len(arr)):
            if arr[i] > arr[j]:
                left += 1
            if arr[i] < arr[j]:
                right += 1
    left = (left * (k*(k+1))//2) # // 하고 /는 결과값이 다르다..
    right = (right * (k*(k-1))//2)
    return int((left+right)%_mod)

def answer2(arr, k):
    count = 0
    arr = arr * k
    for i in range(len(arr)):
        for j in range(i, len(arr)):
            if arr[i] > arr[j]:
                count += 1
    return count
    
n, k = map(int, input().split())
arr = list(map(int, input().split()))
print(answer(arr, k))
print(answer2(arr, k))

2. 여기를 누르면 답이 보입니다