e-olymp 8288. Олимпиада по программированию

Олимпиада по программированию

Диаграмма Эйлера-Венна
На АСМ-олимпиаду прибыло [latex]N[/latex] участников. В результате анкетированные члены жури установили, что [latex]A[/latex] участников программируют на Cи, [latex]B[/latex] на Python, [latex]C[/latex] на Pascal, [latex]X[/latex] одновременно знают Cи и Python, [latex]Y[/latex] — Python и Pascal, [latex]Z[/latex] — Cи и Pascal. Имея значения [latex]N, A, B, C, X, Y, Z[/latex] установите количество участников, которые программируют на трёх языках программирования.

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

В одном ряду через пробел сем действительных чисел [latex]N, A, B, C, X, Y, Z[/latex] значения которых не превышают [latex]100[/latex].

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

Единственное число – количество участников, которые программируют на трёх языках программирования.

Тесты

# ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1 100 40 50 60 15 20 25 10
2 100 50 60 60 20 40 25 15
3 80 50 40 60 20 30 25 5
4 80 50 40 60 0 0 0 0
5 40 20 30 0 5 0 10 5

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

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

Сначала вводим 7 переменных: [latex]N[/latex] — количество участников, [latex]A[/latex] — количество участников, которые программируют на Cи, [latex]B[/latex] — на Python, [latex]C[/latex] — на Pascal, [latex]X[/latex] — количество участников, которые одновременно знают Cи и Python, [latex]Y[/latex] — Python и Pascal, [latex]Z[/latex] — Cи и Pascal. Алгоритм решения данной задачи состоит в том, чтоб найти разницу между заданным количеством участников, которые одновременно знают по два языка [latex](x + y + z)[/latex], и их возможным количеством [latex](a + b + c — n)[/latex]. Тем самым, мы найдем количество людей, которые знают одновременно 3 языка.

Если же после ввода данных, окажется, что количество людей знающих два языка равно нулю [latex](x + y + z == 0)[/latex], то программа выведет, что людей знающих одновременно три языка также нет.

 

5 thoughts on “e-olymp 8288. Олимпиада по программированию

    • «В одному рядку через пробел сем действительных чисел значения…» — это на каком языке получилось? Кажется вообще ни на каком.
    • Вы попытались перевести все, а «Сі» оставили на языке оригинала. Это авторская задумка или недосмотр?
    • Вы пишите «количество участников, что программируют». Давайте вместо «что» напишем «которые».
    • Вы пишите «находим разницу между общим количеством языков, которое знают участники и количеством самих участников». Т.е. Вы от языков отнимаете участников?! Как же такое можно делать приличному молодому человеку?
    • Зачем объяснять такую простую программу? Зачем четыре строчки объяснять одну строчку ввода данных. А потом Вы еще подробно объясняете вычитание. Не нужно такое делать. Объяснять надо алгоритм. Откуда взялись все эти волшебные формулы?!
    • И конечно, традиционно, отступы.
    • «В одному рядку» = «В одной строке»
    • Вы теперь не 4 а 5 строк тратите на объяснение того факта, что данные будут введены. Зачем? Вы можете просто удалить первое предложение пояснения? Оно просто повторяет обозначения из условия задачи и больше не несет информации.
    • Возможно новогоднее настроение мешает мне понять Ваше объяснение. Давайте сделаем шаг навстречу? Я вставлю в Вашу публикацию иллюстрацию с диаграммой Эйлера-Венна. В ней будут семь областей различных цветов, соответствующих разным сочетаниям знания языков. Теперь вам будет легко показать справедливость Вашей формулы. Нужно только указать сколько раз область каждого цвета учитывается в Ваших суммах.

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