Sehrli kvadrat
Rəqəmlər 1-dən 9-a qədər olan bir 3x3 kvadrat təsadüfi qaydada doldurulub. Bu kvadratın hər hansı bir sırada (sola və ya sağa) və ya sütunda (yuxarı və ya aşağı) bir element üzrə dairəvi sürüşdürmə etməyə icazə verilir. Məqsəd, kvadratı sehrli kvadrata çevirmək üçün ən az sayda belə əməliyyatları yerinə yetirən bir proqram yazmaqdır.
Belə çevrilmələrin nümunəsini nəzərdən keçirək:
Giriş verilənləri
Giriş məlumatları üç sətirdən ibarətdir. Hər bir sətir kvadratın bir sıra - boşluqlarla ayrılmış üç rəqəmi ehtiva edir.
Qeyd edək ki, hər hansı bir kvadratı müəyyən sayda dairəvi sürüşdürmə ilə sehrli etmək mümkündür.
Çıxış verilənləri
Birinci sətir tam ədəd n – giriş kvadratını sehrli kvadrata çevirmək üçün lazım olan minimal dairəvi əməliyyatların sayını göstərir. Birinci sətirdən sonra n sətir gəlir, hər biri bir sürüşdürməni təsvir edir. Sürüşdürmələr aşağıdakı kimi kodlanır:
Dx – sütunun x aşağı sürüşdürülməsi;
Ux – sütunun x yuxarı sürüşdürülməsi;
Lx – sıranın x sola sürüşdürülməsi;
Rx – sıranın x sağa sürüşdürülməsi.
Sıra (sütun) nömrəsi x (1 ≤ x ≤ 3) "D", "U", "L" və "R" simvollarından sonra boşluq olmadan yazılır. Kvadratın sətirləri yuxarıdan aşağıya, sütunları soldan sağa nömrələnir.