Всероссийская олимпиада школьников по информатике, 2014-15 уч. год
Первый (школьный) этап, г. Москва
Разбор заданий для 9-11 классов
Каждая задача оценивается в 100 баллов.
Ограничение по времени работы в каждой задаче — 1 секунда.
Задача 1. Шахматная доска
Шахматная доска состоит из
n ×
m клеток, покрашенных в черный и белый цвет в
«шахматном» порядке. При этом клетка в левом нижнем углу доски покрашена в черный
цвет. Определите, сколько всего на доске черных клеток.
Программа получает на вход два числа
n и
m, записанных в отдельных строках. Все
числа —
натуральные, не превосходящие 30 000.
Программа должна вывести одно целое число — количество черных клеток на доске.
Пример входных и выходных данных
Ввод
Вывод
3
4
6
Система оценивания
Решение, правильно
работающее только для случаев, когда входные числа не
превосходят 10, будет оцениваться в 40 баллов.
Решение
Если на доске — четное число клеток, то черных и белых клеток поровну, поэтому
ответом будет
nm/2.
Если же произведение nm нечетно, то черных клеток будет на одну
больше, поэтому
можно поделить nm на 2 нацело и прибавить к результату 1.
Решения задач будут приведены на языке Python версии 3. В
языке Python для
целочисленного деления используется операция «//» (аналог операции div в языке Паскаль,
функции div в алгоритмическом языке или операции «\» в Бейсике). Для проверки четности
используется в языке Python используется операция «%» (аналог операции mod в языках
Паскаль и Бейсик и
функции mod в алгоритмическом языке).
n = int(input())
m = int(input())
if n * m % 2 == 0:
print(n * m // 2)
else:
print(n * m // 2 + 1)
Можно решить эту задачу и без
использования инструкции if, если заметить, что
результатом
является частное от деления nm на 2, округленное вверх:
n = int(input())
m = int(input())
print((n * m + 1) // 2)
Страница 1 из 8