graphlogo

Wydział Matematyki i Informatyki

Uniwersytetu Mikołaja Kopernika w Toruniu

2inf 2024/25 - Programowanie II, LE

[p1] Ilość ustawień nie-szachujących się hetmanów (1)
Data zakończenia: 2024-10-23 15:40
Języki: cpp
Limit czasu: 1.0 s
Limit pamięci: 100 MB
Cel
Zadanie na użycie funkcji rekurencyjnej.


Problem
Niniejsze zadanie jest rozwiązaniem problemu znalezienia takiego ustawienia 8 hetmanów na (standardowej) szachownicy, aby żadne dwa z nich się nie szachowały. Innymi słowy: takiego ustawienia 8 figur, aby żadne dwie figury nie stały w tym samym rzędzie, w tej samej kolumnie lub na tej samej przekątnej.
Jest to dobrze znany problem. Poniższy układ figur jest jednym z rozwiązań.
*                     
               *      
                     *
      *               
                  *   
         *            
   *                  
            *         
W ramach niniejszego zadania należy
  • wyznaczyć liczbę takich ustawień,
  • wypisać jedno z takich ustawień.
Program powinien wczytać łańcuch znaków, który może mieć jedną z dwóch postaci" "liczba" lub "ustawienie". Wynikiem działania powinna być linijka zawierająca:
  • dla łańcucha "liczba" liczbę wspomnianych ustawień,
  • dla łańcucha "ustawienie" ośmio znakowy ciąg znaków składający się z liter "ABCDEFGH" wskazujący w których kolumnach należy umieszczać kolumny z kolejnych rzędów; łańcuch ten powinien być minimalny w porządku leksykograficznym. (W porządku leksykograficznym z łańcuchów AFHCGDBE i AGDFHBEC minimalnym byłby pierwszy z nich (podkreślam: minimalnym tylko z tych dwóch rozwiązań).


Wskazówki: sugeruję:
  • utworzyć globalne tablice dla przechowywania informacji o zajętych
    • kolumnach (8-elementową),
    • przekątnych (dwie 15-elementowe);
  • utworzyć funkcję rekurencyjną, w której dokonywana będzie próba ustawienia figury w kolejnym wierszu
Powrót
© 2009-2020 • ZawodyWeb Team
IKS - Inwestycja w Kierunki Strategiczne na Wydziale Matematyki i Informatyki UMK

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego