結果
| 問題 |
No.1465 Archaea
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-04-02 21:33:18 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 412 ms / 2,000 ms |
| コード長 | 1,042 bytes |
| コンパイル時間 | 184 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 114,816 KB |
| 最終ジャッジ日時 | 2024-12-24 01:09:20 |
| 合計ジャッジ時間 | 4,846 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 20 |
ソースコード
import heapq
class Dijkstra:
def __init__(self, V, INF = 10 ** 20):
self.V = V
self.INF = INF
self.dist = None
self.prev = None
self.adj = [[] for _ in range(V)]
def add(self, u, v, dist):
self.adj[u].append((v, dist))
def run(self, start):
self.dist = [self.INF] * self.V
self.prev = [-1] * self.V
self.dist[start] = 0
priq = [(0, start)]
while len(priq):
d, v = heapq.heappop(priq)
if self.dist[v] < d:
continue
for to, cost in self.adj[v]:
dd = d + cost
if self.dist[to] > dd:
self.dist[to] = dd
self.prev[to] = v
heapq.heappush(priq, (dd, to))
N, K = map(int, input().split())
dij = Dijkstra(N + 1)
for i in range(1, N + 1):
if i * 2 <= N:
dij.add(i, 2 * i, 1)
if i + 3 <= N:
dij.add(i, i + 3, 1)
dij.run(1)
if dij.dist[N] <= K:
print("YES")
else:
print("NO")