AtCoder Beginner Contest 185 D - Stamp【Python】

https://atcoder.jp/contests/abc185/tasks/abc185_d

AtCoder ProblemsのRecommendationで Difficulty: 490、Solve Probability: 43%でした。

N, M = map(int, input().split())
if M > 0:
    A = list(map(int, input().split()))
    A = sorted(A)
    # 連続する白色のマスの数のリスト
    B = []
    if N == M:
        print(0)
        exit()
    else:
        A_1 = A[1]
        for i in range(M+1):
            if i == 0:
                w_num = A[i]-1
            elif i == M:
                w_num = N-A[i-1]
            else:
                w_num = A[i]-A[i-1]-1
            if w_num != 0:
                B.append(w_num)
        k = min(B)
        ans = 0
        # 連続する白色のマスの数をkで割って切り上げたものを加算していけば答え
        for w_num in B:
            ans += math.ceil(w_num / k)

        print(ans)
        exit()
else:
    print(1)