From 55fc7eb3bba83f4084b2f897c61d0280a5f9c097 Mon Sep 17 00:00:00 2001 From: angeld55 Date: Sat, 2 Oct 2021 17:44:35 +0300 Subject: new --- Sem. 09/free_space_in_room.cpp | 72 ------------------------------------------ 1 file changed, 72 deletions(-) delete mode 100644 Sem. 09/free_space_in_room.cpp (limited to 'Sem. 09/free_space_in_room.cpp') diff --git a/Sem. 09/free_space_in_room.cpp b/Sem. 09/free_space_in_room.cpp deleted file mode 100644 index 532a5e1..0000000 --- a/Sem. 09/free_space_in_room.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include -using namespace std; - -//Задача 2: - - -//Подадена е булева матрица. (Стая) -// 1- заета клетка -// 0- свободна клетка. -// 11111111 -// 11000001 -// 11000001 -// 11111111 - -// Подават ни обект(мебел) с размери n и k. -// Трябва да отпечатаме дали има място, където да поставим обекта - - -// Пример: -// В горния пример има къде да поставим обек 2x2, но няма къде да поставим обект 3x3 - - - -const int ROOM_SIZE_X = 4; -const int ROOM_SIZE_Y = 8; - -//Проверява дали има подматрица само със свободни клетки(само с 0-ли) с големина objXDim, objYDim -//където горният ляв ъгъл е на коодриднати upperLeftX и upperLeftY/ -bool hasFreeSpaceFromThisLeftUpCorner(bool room[ROOM_SIZE_X][ROOM_SIZE_Y], int objXDim, int objYDim, int upperLeftX, int upperLeftY) -{ - for (int i = 0; i < objXDim; i++) - { - for (int j = 0; j < objYDim; j++) - { - if (room[upperLeftX + i][upperLeftY + j] != 0) - return false; - } - } - return true; -} -bool hasSpace(bool room[ROOM_SIZE_X][ROOM_SIZE_Y], int objXDim, int objYDim) -//дали има подматрица само от 0-ли с размери objXDim x objYDim -{ - for (int i = 0; i < ROOM_SIZE_X - objXDim + 1; i++) - { - for (int j = 0; j < ROOM_SIZE_Y - objYDim + 1; j++) - { - //i,j - кандидат за горен ляв ъгъл на потенциално свободното пространство - if (hasFreeSpaceFromThisLeftUpCorner(room, objXDim, objYDim, i, j)) - { - //i,j са горен ляв ъгъл на достатъчно голямо свободно място за обект с рамери objXDim objYDim - - cout << "Free space found!" <