結果

問題 No.1720 Division Permutation
ユーザー zkou
提出日時 2021-10-17 12:44:09
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 528 bytes
コンパイル時間 365 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 267,408 KB
最終ジャッジ日時 2024-09-23 03:54:03
合計ジャッジ時間 7,911 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15 TLE * 1 -- * 44
権限があれば一括ダウンロードができます

ソースコード

diff #

# 適当再帰

from functools import lru_cache


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

@lru_cache(None)
def rec(begin, div):
    if div == 1:
        return int((max(Ps[begin:]) - min(Ps[begin:])) == (N - begin - 1))
    ret = 0
    m = Ps[begin]
    M = Ps[begin]
    for end in range(begin + 1, N):
        if M - m == end - begin - 1:
            ret += rec(end, div - 1)
        m = min(m, Ps[end])
        M = max(M, Ps[end])
    return ret

for X in range(1, K + 1):
    print(rec(0, X))
0