結果
問題 |
No.2402 Dirty Stairs and Shoes
|
ユーザー |
![]() |
提出日時 | 2023-08-05 11:11:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 94 ms / 2,000 ms |
コード長 | 859 bytes |
コンパイル時間 | 152 ms |
コンパイル使用メモリ | 82,412 KB |
実行使用メモリ | 100,496 KB |
最終ジャッジ日時 | 2024-12-20 02:48:14 |
合計ジャッジ時間 | 3,115 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
# ゴールからK段以内に靴ふきマットがあれば常に可能 # K段以内に靴ふきマットがなくても汚れていなければ可能 # 解析解ではなくdpでやるしかないか # K歩前まで何度も戻る必要があるのでセグメントツリーか # 問題誤読、1歩かK歩なのでセグメントツリー必要ない N, K = map(int, input().split()) M1 = int(input()) A = set(map(int, input().split())) M2 = int(input()) B = set(map(int, input().split())) INF = 10**6 stairs = [INF]*(N+1) stairs[0] = 0 for i in range(1, N+1): if i in A: continue elif i in B: stairs[i] = 0 else: if i-K >= 0: stairs[i] = min(stairs[i-1], stairs[i-K]) else: stairs[i] = stairs[i-1] #print(stairs) if stairs[N] == 0: print('Yes') else: print('No')