結果

問題 No.2053 12345...
ユーザー Theta
提出日時 2022-10-12 13:41:49
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 133 ms / 2,000 ms
コード長 926 bytes
コンパイル時間 160 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 32,704 KB
最終ジャッジ日時 2024-06-26 08:04:43
合計ジャッジ時間 3,901 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #


def calc_num_of_sequence_diff_1(length: int) -> int:
    return length * (length + 1) // 2


def main():
    N = int(input())
    A = list(map(int, input().split()))

    A_slide = A[1:]
    A_floor_diff = [A_slide_elm -
                    A_elm == 1 for A_slide_elm, A_elm in zip(A_slide, A)]

    current_idx = 0
    length = len(A_floor_diff)
    sequence_num = 0
    while current_idx < length:
        try:
            current_idx = A_floor_diff.index(True, current_idx)
        except ValueError:
            break

        try:
            current_end_idx = A_floor_diff.index(False, current_idx)
        except ValueError:
            sequence_num += calc_num_of_sequence_diff_1(length-current_idx)
            break

        sequence_num += calc_num_of_sequence_diff_1(
            current_end_idx-current_idx)
        current_idx = current_end_idx

    print(sequence_num)


if __name__ == "__main__":
    main()
0