Олимпиадный тренинг

Задача . D3. Стена (сложная)


Задача

Темы: дп *2100

Количество дизайнов для стены поистине огромно! Даже по модулю 106 + 3 это всё ещё очень большое число. Учитывая, что недавно у Хайди появились неистощимые поставки кирпичей, количество вариантов для выбора стало совсем уж неприличным. Ей придётся придумать что-нибудь, чтобы урезать количество вариантов.

Хайди сформулировала критерий полезной стены:

  • В полезной стене, по крайне мере один фрагмент длиннее w кирпичей. Это должно дать зомби возможность разбить свой лоб о стену. Или,
  • в полезной стене, по крайней мере один столбец выше h кирпичей. Это даст возможность наблюдать зомби с удобной и безопасной позиции и обнаружить их заранее.

С помощью этого правила Хайди надеется сильно уменьшим количество подходящих дизайнов. Помогите ей вычислить количество бесполезных стен, которые не удовлетворяют ни одному из условий выше. Другими словами, стена является бесполезной, если каждый её фрагмент имеет ширину не больше чем w и высоту не больше чем h.

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

Выведите количество бесполезных стен по модулю 106 + 3.

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

В первой и единственной строке входных данных записаны три целых числа c, w и h (1 ≤ c ≤ 108, 1 ≤ w, h ≤ 100).

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

Выведите количество бесполезных стен по модулю 106 + 3.

Примечание

Если ни в одном столбце нет ни одного кирпича, конструкция считается бесполезной.


Примеры
Входные данныеВыходные данные
1 1 1 1
2
2 1 2 2
3
3 1 2 3
4
4 3 2 2
19
5 5 4 9
40951
6 40 37 65
933869

time 15000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя