Ханой qüllələrinin bir köçürülməsi#6623

Ханой qüllələrinin bir köçürülməsi

1 saniyə
64 meqabayt
Çox asan

Sizə klassik Hanoy qüllələri məsələsi verilir:

Üç dirək və fərqli ölçülərdə dairəvi disk var ( ən kiçik, ən böyük disktir). Bütün disklər başlanğıcda dirəyində yığılıb və məqsəd bütün qülləni dirəyinə köçürməkdir. Hər addımda yalnız bir diski bir dirəkdən digərinə köçürmək olar; böyük diski heç vaxt kiçik diskin üstünə qoymaq olmaz. Dirəklərin adları , və -dir.

Bu məsələnin yaxşı bilinən rekursiv həlli aşağıdakı kimidir:

move(num_disks, from_post, spare_post, to_post)
    if (num_disks == 0)
        return
    move(num_disks--1, from_post, to_post, spare_post)
    print("Move disk ", num_disks, " from ", from_post, " to ", to_post)
    move(num_disks--1, spare_post, from_post, to_post)

Verilmiş və üçün bu rekurent həllin -cı hərəkətini müəyyən edin.

Giriş

Hər sətirdə iki tam ədəd var: və . Giriş iki sıfırdan ibarət sətrlə bitir. Bütün girişlər düzgündür. və müsbət tam ədədlərdir, k < 2^n, n \leq 60.

Çıxış

Hər test üçün -cı hərəkəti aşağıdakı formatda çıxarın:

Case :

— testin nömrəsi (1-dən başlayaraq), — disk nömrəsi, — başlanğıc dirəyinin adı, — təyinat dirəyinin adı. Cavabın hissələrini bir boşluqla ayırın; sətirin sonunda boşluq olmamalıdır.

Nümunələr

Nümunə 1

Loading
Loading