Problem: There is a sequence of length N: A_1, A_2, ..., A_N. Initially, this sequence is a permutation of 1, 2, ..., N.  On this sequence, Snuke can perform the following operation:    * Choose K consecutive elements in the sequence. Then, replace the value of each chosen element with the minimum value among the chosen elements.  Snuke would like to make all the elements in this sequence equal by repeating the operation above some number of times. Find the minimum number of operations required. It can be proved that, Under the constraints of this problem, this objective is always achievable.

Submission attempts (in order):
N, K = map(int, input().split())
A = list(map(int, input().split()))

print(N, K, len(A))

index = A.index(1)
print(index)

before_num = index
after_num = N - index - 1

ope = 0
if N == K:
    ope = 1
elif K > before_num or K > after_num:
    div, mod = divmod(N, K - 1)
    if mod == 0:
        ope = div
    else:
        ope = div + 1
elif K % 2:
    before_num -= (K - 1) // 2
    after_num -= (K - 1) // 2
    ope += before_num // (K - 1)
    ope += after_num // (K - 1)
else:
    ope1 = 0
    ope2 = 0
    before_num = index - (K - 2) // 2
    after_num = N - index - 1 - K // 2
    div, mod = divmod(before_num, K - 1)
    if mod == 0:
        ope1 += div
    else:
        ope1 += div + 1
    div, mod = divmod(after_num, K - 1)
    if mod == 0:
        ope1 += div
    else:
        ope1 += div + 1
        before_num = index - K // 2
        after_num = N - index - 1 - (K - 2) // 2
    div, mod = divmod(before_num, K - 1)
    if mod == 0:
        ope2 += div
    else:
        ope2 += div + 1
    div, mod = divmod(after_num, K - 1)
    if mod == 0:
        ope2 += div
    else:
        ope2 += div + 1
    print(ope1, ope2)
    if ope1 < ope2:
        ope = ope1
    else:
        ope = ope2
    ope += 1

print(ope)



N, K = map(int, input().split())
A = list(map(int, input().split()))

index = A.index(1)
print(index)

before_num = index
after_num = N - index - 1

ope = 0
if N == K:
    ope = 1
elif K > before_num or K > after_num:
    div, mod = divmod(N, K - 1)
    if mod == 0:
        ope = div
    else:
        ope = div + 1
elif K % 2:
    before_num -= (K - 1) // 2
    after_num -= (K - 1) // 2
    ope += before_num // (K - 1)
    ope += after_num // (K - 1)
else:
    ope1 = 0
    ope2 = 0
    before_num = index - (K - 2) // 2
    after_num = N - index - 1 - K // 2
    div, mod = divmod(before_num, K - 1)
    if mod == 0:
        ope1 += div
    else:
        ope1 += div + 1
    div, mod = divmod(after_num, K - 1)
    if mod == 0:
        ope1 += div
    else:
        ope1 += div + 1
        before_num = index - K // 2
        after_num = N - index - 1 - (K - 2) // 2
    div, mod = divmod(before_num, K - 1)
    if mod == 0:
        ope2 += div
    else:
        ope2 += div + 1
    div, mod = divmod(after_num, K - 1)
    if mod == 0:
        ope2 += div
    else:
        ope2 += div + 1
    print(ope1, ope2)
    if ope1 < ope2:
        ope = ope1
    else:
        ope = ope2
    ope += 1

print(ope)



N, K = map(int, input().split())
A = list(map(int, input().split()))

div, mod = divmod(N - 1, K - 1)
if mod == 0:
    print(div)
else:
    print(div + 1)


Verdicts: Wrong Answer

Wrong Answer

Accepted