[C++]Szachownica i wieże

Mrz355
Użytkownik
Użytkownik
Posty: 37
Rejestracja: 4 lis 2015, o 20:08
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 6 razy

[C++]Szachownica i wieże

Post autor: Mrz355 » 28 lis 2015, o 12:44

Na szachownicy o wymiarach 201 wierszy i 201 kolumn umieszczono pewną liczbę wież
szachowych tak, że każde z pól jest szachowane. Przyszedł zły człowiek i zmienił położenie jednej z
wież na szachownicy, tak że nie wszystkie pola są szachowane. Proszę zaproponować funkcję, która
znajdzie przeniesienie jednej wieży tak aby ponownie wszystkie pola były szachowane. Do funkcji
przekazujemy tablicę bool t[201][201] z układem wież po zmianie, funkcja powinna wyznaczyć i
zwrócić dwa pola (wiersz, kolumna) – skąd , dokąd należy przenieść wieżę.

Byłbym bardzo wdzięczny chociaż za jakiś pomysł.

Awatar użytkownika
Althorion
Gość Specjalny
Gość Specjalny
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C++]Szachownica i wieże

Post autor: Althorion » 28 lis 2015, o 12:51

Po przesunięciu będzie istnieć kolumna, w której są co najmniej dwie wieże, wiersz, w którym są co najmniej dwie wieże i wieża na przecięciu tej kolumny z tym wierszem. To jest nasza ruszona figura.
Teraz patrzysz, które pola nie są szachowane — będą wszystkie w jednym wierszu i w jednej kolumnie. To stamtąd została ruszona nasza bierka.

Zauważ, że w zadaniu nie ma mowy o tym, że ustawienie wież było optymalne, tzn. nie jest pewne, czy nie ma nadmiarowych wież, więc kolumn i wierszy ze zdublowanymi figurami może być więcej niż jedna.

ODPOWIEDZ