e-olymp 4752. Кинотеатр

Задача

Однажды, ученики B-й школы города G решили съездить в кино. Администрация кинотеатра расположила их в зале размера n × m, который специально был подобран так, чтобы все места были заняты школьниками. Каждому посетителю кинотеатра был выдан свой номер.

Школьники заняли свои места следующим образом: они входили в зал в порядке, в котором шли их номера, и полностью занимали сначала первый ряд, потом второй, потом третий и т.д.

prb4752.gif

Однако классный руководитель решил, что такая рассадка плохо влияет на поведение учащихся и пересадил их по-другому: ученики сначала занимали все первые места каждого ряда, потом все вторые места каждого ряда и т.д. (см. рисунок).

prb4752_1.gif

Администрация решила выяснить, сколько учащихся не поменяют своего места после пересадки.

Входные данные

В первой строке заданы числа $n$ и $m$ $(1 ≤ n, m ≤ 1000)$.

Выходные данные

Выведите одно число — количество учеников, которые в результате пересадки остануться сидеть на тех же местах.

Тесты

Входные данные Выходные данные
1 3 3 3
2 3 4 2
3 6 3 2
4 5 9 5
5 7 5 3

Код программы

Код программы с линейным массивом

Код программы без массива

Решение задачи

Для решения задачи проверяем значения до пересадки и после, если они совпадут соответственно, то инкрементируем счётчик. А в конце выводим результат.

Ссылки

Related Images:

12 thoughts on “e-olymp 4752. Кинотеатр

    • Ну почти, за $O(log(max(n, m)))$, но по сравнению с $O(n\cdot m)$, это действительно выглядит как $O(1)$.

    • Большое спасибо, исправила. Обещаю подумать.

    • Отступы вы не исправили.

    • Не всё правильно исправили.

    • Спасибо, учла все замечания.

  1. Отступы!
    То сколько раз Вам об этом пишут, наталкивает меня на мысль, что вы используете и пробелы, и табудяции одновременно. Поскольку нет закона природы, который устанавливает количество пробелов в табуляции, то у вас от редактора к редактору все и пляшет.

  2. Хорошо. Если будет время, подумайте над вопросом Олега — как быстро решить эту задачу без массивов. Циклы или рекурсия все же понадобятся.
    А в качестве технического упражнения сделайте еще один вариант кода с линейным массивом, хорошо?

    • Спасибо за замечание, все сделала.

Добавить комментарий