Планування кінотеатру#13054

Планування кінотеатру (Розбір)

Оскільки заброньовані місця є послідовними, нам потрібно лише визначити номер ряду для першого місця та номер ряду для останнього місця. Усі ряди між ними будуть повністю або частково зайняті.

  • Перше місце — це .

  • Останнє місце — це s + n - 1.

Щоб знайти номер ряду для будь-якого місця (нумерація рядів починається з ), потрібно поділити на кількість місць у ряду і округлити вгору: \lceil \frac{x}{m} \rceil.

У C++ та інших мовах цю функцію стелі можна безпечно обчислити за допомогою цілочисельного ділення, щоб уникнути похибок з плаваючою комою:

\text{Row}(x) = \frac{x + m - 1}{m}

Нехай R_{first} = \text{Row}(s) і R_{last} = \text{Row}(s + n - 1). Загальна кількість різних рядів, які займе компанія Фаді, дорівнює:

R_{last} - R_{first} + 1

Часова складність: на кожен набір вхідних даних.

Просторова складність: .