e-olymp 11154. Покраска забора

Задача

Несколько сезонов жарких лет и холодных зим изрядно подпортили изгородь Фермера Джона, и он решил перекрасить её с помощью своей любимой коровы Беси. Беси отлично красит, но к несчастью плохо понимает команды ФД.

Если мы рассмотрим изгородь ФД как одномерную числовую прямую, то ФД закрашивает интервал между [latex]x = a[/latex] и [latex]x = b[/latex]. Например, если [latex]a[/latex] = 3 и [latex]b[/latex] = 5, то ФД закрашивает интервал длиной 2. Беси, не понимая команды ФД, закрашивает интервал от [latex]x = c[/latex] до [latex]x = d[/latex], который может частично или полностью перекрываться с интервалом ФД. Определите общую длину изгороди, которую покрасят ФД и Беси.

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

Первая строка содержит целые числа [latex]a[/latex] и [latex]b[/latex] [latex](a < b)[/latex].

Вторая строка содержит целые числа [latex]c[/latex] и [latex]d[/latex] [latex](c < d)[/latex].

Значения [latex]a, b, c, d[/latex] лежат в интервале 0..100 включительно.

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

Выведите в одной строке общую длину изгороди, покрытой краской.

Тесты

Входные данные Выходные данные
7 10
4 8
6
5 7
1 4
5
1 5
6 9
7
13 17
16 22
9

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

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

Считываем все значения из условия и представляем их в виде отрезков [latex]AB[/latex] и [latex]CD[/latex]. Затем проверяем, лежит ли некоторая часть одного отрезка или весь отрезок внутри другого. Если отрезки пересекаются или совпадают, то выводим общую длину отрезка, если отрезки не пересекаются, то выводим сумму длин отрезков.

Например, на картинке отрезки не пересекаются, значит можно просто сложить их длины (переменные [latex]m[/latex] и [latex]n[/latex] введены только в объяснение для удобства)

Тут один отрезок частично лежит внутри другого, значит нужно сложить [latex]m[/latex] и [latex]n[/latex], но отнять длину отрезка [latex]CB[/latex], чтобы не получилось, что мы учли его дважды.

Ссылки

Задача на e-olymp

Засчитанное решение на e-olymp

Код в ideone

3 thoughts on “e-olymp 11154. Покраска забора

  1. 1. Уберите кириллицу из постоянной ссылки
    2. Все формулы должны быть сделаны в LaTeX, даже если в них всего один символ.
    3. Используйте пожалуйста тернарную операцию вместо второго условного оператора.
    4. Не нужно описывать программу. Во всяком случае такую простую. Нужно описывать алгоритм. Вы просто описали, что вы сделали. А почему это решает задачу? Возможно не помешал бы и рисунок.
    5. В тексте на HTML нужно использовать для абзацев тег Р, а не пустые строки.
    6. Как может быть и линейный алгоритм и ветвление одновременно?
    7. Метки (хештеги) забыли

  2. — «значит может просто сложить» — что-то в этом месте не согласовано в предложении
    — Сделайте, пожалуйста ,правильные отступы в программе.
    span style="color: #ffcc00 Не знаю, зачем вам понадобилось принудительно назначать цвета да еще и отдельным тегом. Уберите, пожалуйста. Цвета назначает тема сайта в CSS. Ваше дело семантическая разметка.
    — Обычно требовал рисунки в SVG. Поскольку мы его изучали и это хорошая практика. Да и выходит аккуратнее. Но такое время, что настаивать не буду. Но эту непонятную белую полосу справа нужно убрать.

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