72122024-01-03 16:31:31CsongiRácsháló gráfpython3Wrong answer 0/5035ms13592 KiB
def inicializalas_racshalo(sorok, oszlopok):
    return [[i * oszlopok + j + 1 for j in range(oszlopok)] for i in range(sorok)]

def min_lepesek_megkereses(racshalo, kezdo, veg):
    latogatott = set()
    sor = [(kezdo, 0)]

    while sor:
        aktualis, lepesek = sor.pop(0)
        if aktualis == veg:
            return lepesek

        if aktualis not in latogatott:
            latogatott.add(aktualis)

            sor_idx, oszlop_idx = divmod(aktualis - 1, len(racshalo[0]))

            # Szomszédok hozzáadása a sorban és oszlopban
            szomszedok = [(sor_idx - 1, oszlop_idx), (sor_idx + 1, oszlop_idx), (sor_idx, oszlop_idx - 1), (sor_idx, oszlop_idx + 1)]
            for r, c in szomszedok:
                if 0 <= r < len(racshalo) and 0 <= c < len(racshalo[0]):
                    sor.append((racshalo[r][c], lepesek + 1))

    return -1  # Nem sikerült eljutni a célponthoz

def main():
    sorok, oszlopok, elenk_szam = map(int, input().split())
    racshalo = inicializalas_racshalo(sorok, oszlopok)
    
    for _ in range(elenk_szam):
        elenk_kezdo, elenk_veg = map(int, input().split())
        min_lepesek = min_lepesek_megkereses(racshalo, elenk_kezdo, elenk_veg)
        print(min_lepesek)

main()
SubtaskSumTestVerdictTimeMemory
base0/50
1Wrong answer0/017ms11368 KiB
2Wrong answer0/035ms11684 KiB
3Wrong answer0/217ms11728 KiB
4Wrong answer0/217ms11848 KiB
5Wrong answer0/217ms12144 KiB
6Wrong answer0/217ms12124 KiB
7Wrong answer0/218ms12324 KiB
8Wrong answer0/218ms12388 KiB
9Wrong answer0/219ms12984 KiB
10Wrong answer0/218ms13076 KiB
11Wrong answer0/218ms13004 KiB
12Wrong answer0/223ms13096 KiB
13Wrong answer0/328ms12844 KiB
14Wrong answer0/319ms13288 KiB
15Wrong answer0/328ms12828 KiB
16Wrong answer0/318ms13124 KiB
17Wrong answer0/326ms12872 KiB
18Wrong answer0/325ms13496 KiB
19Wrong answer0/318ms13220 KiB
20Wrong answer0/317ms13592 KiB
21Wrong answer0/326ms13292 KiB
22Wrong answer0/334ms13576 KiB