# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1170239 | oasunmol | Jakarta Skyscrapers (APIO15_skyscraper) | Pypy 3 | 133 ms | 48812 KiB |
import heapq
from collections import defaultdict
import sys
# Constants
BUC = 175 # Jump threshold
INF = float('inf')
def min_jumps_to_doge1(N, M, doges):
# Step 1: Construct adjacency list (doges per skyscraper)
skyscraper_doges = defaultdict(list)
for i, (B, P) in enumerate(doges):
skyscraper_doges[B].append((i, P)) # Doge index and power
# Step 2: Dijkstra Initialization
dist = {} # Dictionary to store the minimum jumps needed
pq = [] # Min heap for Dijkstra's algorithm
# Push starting position (Doge 0) into priority queue
heapq.heappush(pq, (0, doges[0][0], 0)) # (jumps, position, power)
dist[(doges[0][0], 0)] = 0 # Distance to Doge 0's initial position is 0
while pq:
jumps, pos, power = heapq.heappop(pq)
# If we reach Doge 1, return the minimum jumps
if pos == doges[1][0]:
return jumps
# Step 3: Passing news to other doges at the same skyscraper
Compilation message (stdout)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |