結果
| 問題 |
No.1242 高橋君とすごろく
|
| コンテスト | |
| ユーザー |
FromBooska
|
| 提出日時 | 2023-03-20 19:15:30 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,422 bytes |
| コンパイル時間 | 214 ms |
| コンパイル使用メモリ | 82,048 KB |
| 実行使用メモリ | 361,100 KB |
| 最終ジャッジ日時 | 2024-09-18 14:09:49 |
| 合計ジャッジ時間 | 4,262 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 6 TLE * 1 -- * 17 |
ソースコード
# あるポジション0から見て(1, 6)両方がアウトならアウト、同様に(2, 5), (3, 4)
# ということはダメなマスがあったら、そこから右に+1, +3, +5がダメなら、左に新しいダメマスができる
# そうやってダメマスを左に作っていき、スタートの1がダメマスならNo, else Yes
# ダメマスは最初のK個からどんどん増えていって、最大値のものから調べる必要がある
# マイナスにしてheapするか
# TLEしたので、heapに加えるかどうかのsetも加えてみる
from heapq import *
N, K = map(int, input().split())
A = list(map(int, input().split()))
Dame = [-a for a in A]
Dame_set = set(Dame)
heapify(Dame)
visited = set()
while Dame:
largest = heappop(Dame)
Dame_set.discard(largest)
if (largest-1) in visited and (largest+3) < 0 and (largest+3) not in Dame_set:
heappush(Dame, largest+3)
Dame_set.add(largest+3)
if (largest-3) in visited and (largest+2) < 0 and (largest+2) not in Dame_set:
heappush(Dame, largest+2)
Dame_set.add(largest+2)
if (largest-5) in visited and (largest+1) < 0 and (largest+1) not in Dame_set:
heappush(Dame, largest+1)
Dame_set.add(largest+1)
visited.add(largest)
#print('Dame', Dame, 'Dame_set', Dame_set, 'visited', visited)
if (-1) in visited:
print('No')
else:
print('Yes')
FromBooska