Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 09 / free_space_in_room.cpp
diff options
context:
space:
mode:
Commit55fc7eb3bba83f4084b2f897c61d0280a5f9c097 (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2021-10-02 17:44:35 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2021-10-02 17:44:35 +0300
Files85d32a9a73f85c54162f9233f36a054ebe0de212 /Sem. 09/free_space_in_room.cpp
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.tar
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.tar.gz
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.zip
Parent7f51b56297270d4a1f808bc73d082b71418a2fe0 (diff)
new
1 files changed, 0 insertions, 72 deletions
-rw-r--r--Sem. 09/free_space_in_room.cpp72
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 <iostream>
-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!" <<endl;
- cout << "Corners:" << endl;
- cout << i << " " << j<<endl;
- cout << i + objXDim - 1 << " " << j << endl;
- cout << i + objXDim-1 << " " << j + objYDim-1<<endl;
- cout << i << " " << j + objYDim - 1 << endl;
- return true;
- }
- }
- }
- return false;
-}
-int main()
-{
- bool room[ROOM_SIZE_X][ROOM_SIZE_Y] = { { 1, 1, 1, 1, 1, 1, 1, 1 },
- { 1, 1, 0, 0, 0, 0, 0, 1 },
- { 1, 1, 0, 0, 0, 0, 0, 1 },
- { 1, 1, 1, 1, 1, 1, 1, 1 } };
- hasSpace(room, 2, 4); //Има ли къде да разположим мебел с размер 2x4
-}