Submission #482544

# Submission time Handle Problem Language Result Execution time Memory
482544 2021-10-25T14:05:13 Z beaconmc Jakarta Skyscrapers (APIO15_skyscraper) PyPy 3
0 / 100
37 ms 18412 KB
import io, os
from math import *
from heapq import *
#input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline

n, m = map(int, input().split())

edges = [[] for i in range(n)]
sussy = [[] for i in range(n)]
stuff = []
count = 0
for i in range(m):
    a,b = map(int, input().split())
    if count == 1:
        sus = a
    if count == 0:
        imposter = a
    sussy[a].append(b)
    count += 1

for i in range(n):
    for j in range(i+1,n):
        for k in sussy[i]:
            if i%k == j%k:
                edges[i].append((j, abs(i-j)//k))
                break
            
        for k in sussy[j]:
            if i%k == j%k:
                edges[j].append((i, abs(i-j)//k))
                break
            
def djk(src):
    dist = [inf for i in range(n)]
    dist[src] = 0
    q = []
    heapify(q)
    heappush(q, (dist[src], src))
    while len(q):
        node = heappop(q)
        if dist[node[1]] != node[0]:
            continue
        
        for i in edges[node[1]]:
            if dist[i[0]] > node[0] + i[1]:
                dist[i[0]] = node[0] + i[1]
                heappush(q, (node[0]+i[1], i[0]))
    return dist
susz = djk(imposter)
print(-1 if susz == inf else susz)

# Verdict Execution time Memory Grader output
1 Incorrect 36 ms 18212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 18364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 37 ms 18292 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 18324 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 36 ms 18412 KB Output isn't correct
2 Halted 0 ms 0 KB -