Дано n дверей и n человек. Двери пронумерованы от 1 до n, и людям даны номера с номерами от 1 до n. Каждая дверь может иметь только 2 статуса открытых и закрытых. Изначально все двери имеют статус закрытых. Найти окончательный статус всех дверей, если человек изменяет текущий статус всех дверей, то есть, если статус открыт, то изменить на статус закрыт и наоборот, для которого он авторизован. Лицо с идентификатором «i» имеет право изменять статус двери с номером «j», если «j» кратно «i».
Замечания:
— Человек должен изменить текущее состояние всех дверей, на которые он авторизован, только один раз.
— Может возникнуть ситуация, когда до того, как человек меняет статус двери, другой человек, который также авторизован для той же двери, меняет статус двери.
Пример :
Input : 3 Output : open closed closed
Пояснение: Поскольку n = 3, следовательно, есть
3 двери {1, 2, 3} и
3 человека с идентификаторами {1, 2, 3}
человек с id = 1 может изменить статус двери 1, 2, 3
человек с id = 2 может изменить статус двери 2
человек с id = 3 может изменить статус двери 3
Текущее состояние всех дверей: закрыто закрыто закрыто
Рассмотрим последовательность событий,
- Человек с id = 1 меняет статус двери 2
Текущее состояние всех дверей: закрыто открыто закрыто - Человек с id = 3 меняет статус двери 3
Текущее состояние всех дверей: закрыто открыто открыто - Человек с id = 1 меняет статус двери 1, 3
Текущее состояние всех дверей: открыто открыто закрыто - Человек с id = 2 меняет статус двери 2
Текущее состояние всех дверей: открыто закрыто закрыто
В этой последовательности все лица изменили текущее состояние всех дверей ровно один раз, для которых они авторизованы.
Другой пример :
Input : 5 Output : open closed closed open closed Note: Sequence of open/closed is displayed in increasing door number
Подход: это математический и логический подход. Если мы наблюдаем это должным образом, то мы обнаруживаем, что окончательный статус двери с номером i открыт, если у «i» есть нечетное количество факторов, и статус закрыт, если у «i» есть четное количество факторов. Это не зависит от того, в какой последовательности изменяется статус дверей. Чтобы выяснить, является ли число делителей числа четным или нечетным, мы можем посмотреть Проверить, является ли число делителей четным или нечетным постом.
|
Джава
|
python3
|
C #
|
PHP
|
Выход :
open closed closed open closed
Временная сложность: O (n)
Рекомендации: Спрошено в интервью TCS
Эта статья предоставлена Аюшем Джаухари . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Найти центр тяжести несамопересекающегося замкнутого многоугольника
- Проверьте, возможно ли преобразовать A в B
- Проверьте, является ли N фактором или нет
- Проверьте n ^ 2 — m ^ 2 простое или нет
- Проверьте делимость на 7
- Проверьте, возможен ли обмен
- Проверьте, является ли данное число четным или нечетным
- Проверьте, является ли число полупростым или нет
- Проверьте, может ли епископ снять пешку или нет
- Проверьте, является ли XOR всех чисел в данном диапазоне четным или нечетным
- Проверьте, является ли N Факториальным Праймом
- Проверьте на дружную пару
- Проверьте, является ли N сильным главным
- Проверьте, a + b = c или нет после удаления всех нулей из a, b и c
- Проверьте, может ли число быть выражено как 2 ^ x + 2 ^ y
0.00 (0%) 0 votes