Submission #4630724


Source Code Expand

# 最長増加部分列(Longest Increasing Subsequence)
# "抜き取り、挿入する"という操作をしないカードはもともと昇順になっている
# それらの操作をしないカードが最大になるように操作するカードを選ぶことが最小回数で済ませる条件
# つまり、もともと昇順になっているカード群を最大化すればよい
# これをDPで行うのだが、データの持ち方を工夫して、カード群の大きさがiのときのカード群内の最大値が一番小さいものを格納
from bisect import bisect_left
N = int(input())
c = [int(input()) for i in range(N)]
dp = [c[0]]  # dp[i]:i枚カード群の中で、最大値が一番小さいカード群の、最後のカード
for i in range(1, N):
    # 二分探索使いましょう
    # dpの最後の要素よりc[i]が大きいならc[i]を最後に付けて、一つ大きい部分列になる
    if c[i] > dp[-1]:
        dp.append(c[i])
    # そうじゃないなら、c[i]より大きいのと小さいのの間のところにいれる(大きいのを上書き)
    else:
        dp[bisect_left(dp, c[i])] = c[i]

    """
    これだとO(n)になるのでpypyでも間に合わない
    for j in range(len(dp)):
        if dp[j] < c[i]:
            if j + 1 == len(dp):
                dp.append(c[i])
            else:
                dp[j + 1] = min(c[i], dp[j + 1])
    dp[0] = min(dp[0], c[i])
    """
# print(dp)
print(N-len(dp))

Submission Info

Submission Time
Task D - トランプ挿入ソート
User petite_prog
Language PyPy3 (2.4.0)
Score 100
Code Size 1520 Byte
Status AC
Exec Time 348 ms
Memory 47064 KB

Judge Result

Set Name smallA smallB all
Score / Max Score 10 / 10 40 / 40 50 / 50
Status
AC × 19
AC × 37
AC × 55
Set Name Test Cases
smallA test_01_ABC.txt, test_04_ABC.txt, test_07_ABC.txt, test_10_ABC.txt, test_13_ABC.txt, test_16_ABC.txt, test_19_ABC.txt, test_22_ABC.txt, test_25_ABC.txt, test_28_ABC.txt, test_31_ABC.txt, test_32_ABC.txt, test_35_ABC.txt, test_38_ABC.txt, test_41_ABC.txt, test_44_ABC.txt, test_47_ABC.txt, test_50_ABC.txt, test_53_ABC.txt
smallB test_01_ABC.txt, test_02_AB.txt, test_04_ABC.txt, test_05_AB.txt, test_07_ABC.txt, test_08_AB.txt, test_10_ABC.txt, test_11_AB.txt, test_13_ABC.txt, test_14_AB.txt, test_16_ABC.txt, test_17_AB.txt, test_19_ABC.txt, test_20_AB.txt, test_22_ABC.txt, test_23_AB.txt, test_25_ABC.txt, test_26_AB.txt, test_28_ABC.txt, test_29_AB.txt, test_31_ABC.txt, test_32_ABC.txt, test_33_AB.txt, test_35_ABC.txt, test_36_AB.txt, test_38_ABC.txt, test_39_AB.txt, test_41_ABC.txt, test_42_AB.txt, test_44_ABC.txt, test_45_AB.txt, test_47_ABC.txt, test_48_AB.txt, test_50_ABC.txt, test_51_AB.txt, test_53_ABC.txt, test_54_AB.txt
all test_01_ABC.txt, test_02_AB.txt, test_03_A.txt, test_04_ABC.txt, test_05_AB.txt, test_06_A.txt, test_07_ABC.txt, test_08_AB.txt, test_09_A.txt, test_10_ABC.txt, test_11_AB.txt, test_12_A.txt, test_13_ABC.txt, test_14_AB.txt, test_15_A.txt, test_16_ABC.txt, test_17_AB.txt, test_18_A.txt, test_19_ABC.txt, test_20_AB.txt, test_21_A.txt, test_22_ABC.txt, test_23_AB.txt, test_24_A.txt, test_25_ABC.txt, test_26_AB.txt, test_27_A.txt, test_28_ABC.txt, test_29_AB.txt, test_30_A.txt, test_31_ABC.txt, test_32_ABC.txt, test_33_AB.txt, test_34_A.txt, test_35_ABC.txt, test_36_AB.txt, test_37_A.txt, test_38_ABC.txt, test_39_AB.txt, test_40_A.txt, test_41_ABC.txt, test_42_AB.txt, test_43_A.txt, test_44_ABC.txt, test_45_AB.txt, test_46_A.txt, test_47_ABC.txt, test_48_AB.txt, test_49_A.txt, test_50_ABC.txt, test_51_AB.txt, test_52_A.txt, test_53_ABC.txt, test_54_AB.txt, test_55_A.txt
Case Name Status Exec Time Memory
sample_01.txt AC 171 ms 38256 KB
sample_02.txt AC 173 ms 38256 KB
sample_03.txt AC 169 ms 38256 KB
test_01_ABC.txt AC 170 ms 38256 KB
test_02_AB.txt AC 207 ms 39408 KB
test_03_A.txt AC 331 ms 45528 KB
test_04_ABC.txt AC 172 ms 38384 KB
test_05_AB.txt AC 201 ms 39408 KB
test_06_A.txt AC 260 ms 44776 KB
test_07_ABC.txt AC 170 ms 38256 KB
test_08_AB.txt AC 206 ms 39408 KB
test_09_A.txt AC 338 ms 45912 KB
test_10_ABC.txt AC 173 ms 38256 KB
test_11_AB.txt AC 186 ms 38640 KB
test_12_A.txt AC 301 ms 45400 KB
test_13_ABC.txt AC 170 ms 38256 KB
test_14_AB.txt AC 216 ms 39536 KB
test_15_A.txt AC 342 ms 45528 KB
test_16_ABC.txt AC 173 ms 38256 KB
test_17_AB.txt AC 198 ms 38768 KB
test_18_A.txt AC 251 ms 43372 KB
test_19_ABC.txt AC 174 ms 38384 KB
test_20_AB.txt AC 213 ms 39536 KB
test_21_A.txt AC 343 ms 45528 KB
test_22_ABC.txt AC 171 ms 38256 KB
test_23_AB.txt AC 205 ms 39408 KB
test_24_A.txt AC 326 ms 46040 KB
test_25_ABC.txt AC 172 ms 38256 KB
test_26_AB.txt AC 208 ms 39408 KB
test_27_A.txt AC 344 ms 45784 KB
test_28_ABC.txt AC 170 ms 38256 KB
test_29_AB.txt AC 210 ms 39280 KB
test_30_A.txt AC 322 ms 45016 KB
test_31_ABC.txt AC 170 ms 38256 KB
test_32_ABC.txt AC 172 ms 38256 KB
test_33_AB.txt AC 199 ms 38768 KB
test_34_A.txt AC 317 ms 45272 KB
test_35_ABC.txt AC 172 ms 38256 KB
test_36_AB.txt AC 187 ms 38256 KB
test_37_A.txt AC 243 ms 41968 KB
test_38_ABC.txt AC 174 ms 38256 KB
test_39_AB.txt AC 201 ms 38768 KB
test_40_A.txt AC 317 ms 44504 KB
test_41_ABC.txt AC 172 ms 38384 KB
test_42_AB.txt AC 192 ms 38256 KB
test_43_A.txt AC 248 ms 42348 KB
test_44_ABC.txt AC 171 ms 38256 KB
test_45_AB.txt AC 206 ms 39024 KB
test_46_A.txt AC 348 ms 47064 KB
test_47_ABC.txt AC 175 ms 38256 KB
test_48_AB.txt AC 182 ms 38256 KB
test_49_A.txt AC 258 ms 43116 KB
test_50_ABC.txt AC 181 ms 38256 KB
test_51_AB.txt AC 214 ms 39024 KB
test_52_A.txt AC 328 ms 44888 KB
test_53_ABC.txt AC 178 ms 38256 KB
test_54_AB.txt AC 178 ms 38256 KB
test_55_A.txt AC 331 ms 44960 KB