Codeforces Round 133 (Div. 2) |
---|
Закончено |
Новоиспеченный берляндский бизнесмен Виталий собирается открыть свой магазин бытовой техники. Дело осталось за малым — нужно набрать персонал.
Магазин будет работать без выходных, хотя и не круглосуточно. Каждый день в магазине должны работать не менее k сотрудников.
В Берляндии принят закон, который определяет порядок рабочих и выходных дней. А именно: каждый сотрудник должен выходить на работу ровно n дней подряд, после чего ровно m дней отдыхать; затем опять работать n дней и m дней отдыхать, и так далее. Виталий не хочет нарушать закон. К счастью, здесь имеется лазейка: закон вступает в силу в тот день, когда сотрудник был нанят. Например, если сотрудник был нанят в день x, то он должен работать в дни [x, x + 1, ..., x + n - 1], [x + m + n, x + m + n + 1, ..., x + m + 2n - 1] и так далее. Причем день x Виталий может выбирать произвольно.
Есть еще одна деталь: ключ от магазина. Берляндский закон запрещает делать копии ключей, поэтому ключ только один. Виталий планирует доверить ключ сотрудникам магазина. При этом в каждый из дней ключ обязательно должен быть у сотрудника, у которого сегодня рабочий день — иначе в этот день просто никто не сможет попасть внутрь магазина. В течение дня владелец ключа может передать этот ключ другому сотруднику, если у него сегодня тоже рабочий день. Виталий сам передаст ключ самому первому нанятому сотруднику в его первый рабочий день.
Каждому из сотрудников нужно платить зарплату. Поэтому Виталий хочет нанять как можно меньше сотрудников так, чтобы магазин мог нормально функционировать в каждый из дней от 1 до бесконечности. Другими словами в каждый день с номером от 1 до бесконечности, в магазине должно работать не менее k сотрудников, при этом обязательно у одного из работающих сотрудников должен быть ключ от магазина.
Помогите Виталию — определите наименьшее необходимое количество сотрудников, а так же дни, в которые их следует нанять.
В первой строке записаны три целых числа n, m и k (1 ≤ m ≤ n ≤ 1000, n ≠ 1, 1 ≤ k ≤ 1000).
В первой строке выведите единственное целое число z — наименьшее необходимое количество сотрудников.
Во второй строке выведите z целых положительных чисел, разделяя их пробелами: i-ое из этих чисел ai (1 ≤ ai ≤ 104) должно обозначать номер дня, в который следует нанять i-ого сотрудника.
Если существует несколько ответов — выведите любой.
4 3 2
4
1 1 4 5
3 3 1
3
1 3 5
Название |
---|