Загрузка...

Напишите программу на С++ для 9 класса, ибо я не понимаю...

Тема в разделе C/C++ создана пользователем Ic3Cr34M 19 сен 2017. (поднята 19 сен 2017) 1125 просмотров

Загрузка...
  1. Ic3Cr34M
    Ic3Cr34M Автор темы 19 сен 2017 Заблокирован(а) 510 6 май 2017
    Нет лучшего способа произвести впечатление на девушку, чем великодушный отказ брать сдачу при оплате счёта в кафе. По крайней мере, Макс считает именно так. Для закрепления эффекта Макс также не берёт сдачу при оплате такси.

    У Макса имеется A купюр по 10 рублей, B купюр по 50 рублей и C купюр по 100 рублей. В кафе Максу и его девушке принесли счёт на сумму N рублей, а проезд в такси стоит M рублей.

    Помогите Максу узнать, какую наименьшую сумму денег ему придётся потратить, если он будет отказываться от сдачи. Помните, что кафе и такси оплачиваются по отдельности.





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


    Первая строка содержит целые числа A, B, C (0 ≤ A, B, C ≤ 10) — количество имеющихся у Макса купюр по 10, 50 и 100 рублей соответственно.

    Вторая строка содержит целые числа N и M (1 ≤ N, M ≤ 600) — сумму в счёте кафе и цену такси соответственно.





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


    Выведите одно целое число — минимальное количество рублей, которое потребуется потратить Максу.

    Если Макс не сможет расплатиться предпочитаемым образом, выведите число -1.





    Примеры




    входные данные
    3 1 10
    490 100
    выходные данные
    600

    входные данные
    1 6 2
    485 351
    выходные данные
    -1




    Примечание


    В первом примере Макс может заплатить 500 рублей за кафе и 100 рублей за такси.
     
  2. Ic3Cr34M
    Ic3Cr34M Автор темы 19 сен 2017 Заблокирован(а) 510 6 май 2017
    Да, чтобы в консоле вывобилось и ввоодилось все, ну ты понял
     
  3. justman_inactive
    Ну тип такого

    Код

    int a, b, c;
    cin >> a >> b >> c;
    int m, n;
    cin >> m >> n;

    // Вовсе не жадный Максим будет действовать по весьма жадному алгоритму
    // Ведём ту самую в кафе
    int a1 = a, b1 = b, c1 = c; // Оплата Кафе
    int sum1 = a1 * 10 + b1 * 50 + c1 * 100; // Сколько всего платить (Сейчас - весь его скарб)
    while (sum1 >= m + 100 && c1 > 0) {
    c1--; // Спасаем 100
    sum1 = a1 * 10 + b1 * 50 + c1 * 100;
    }
    while (sum1 >= m + 50 && b1 > 0) {
    b1--; // Спасаем 50
    sum1 = a1 * 10 + b1 * 50 + c1 * 100;
    }
    while (sum1 >= m + 10 && a1 > 0) {
    a1--; // Спасаем 10
    sum1 = a1 * 10 + b1 * 50 + c1 * 100;
    }
    if (sum1 < m) {
    cout << -1; // Максим облажался :(
    return 0;
    }

    // Ведём ту самую в такси
    int a2 = a - a1, b2 = b - b1, c2 = c - c1; // Оплата Кафе
    int sum2 = a2 * 10 + b2 * 50 + c2 * 100; // Сколько всего платить (Сейчас - всё, что осталось)
    while (sum2 >= n + 100 && c2 > 0) {
    c2--; // Спасаем 100
    sum2 = a2 * 10 + b2 * 50 + c2 * 100;
    }
    while (sum2 >= n + 50 && b2 > 0) {
    b2--; // Спасаем 50
    sum2 = a2 * 10 + b2 * 50 + c2 * 100;
    }
    while (sum2 >= n + 10 && a2 > 0) {
    a2--; // Спасаем 10
    sum2 = a2 * 10 + b2 * 50 + c2 * 100;
    }
    if (sum2 < n) {
    cout << -1; // Максим облажался :(
    return 0;
    }
    cout << sum1 + sum2;

    return 0;
     
  4. justman_inactive
     
  5. keoRez
    Код

    int main() {
    int Note10(0), Note50(0), Note100(0),
    MoneyCoffe(0), MoneyTaxi(0);
    std::cin >> Note10 >> Note50 >> Note100;
    std::cin >> MoneyCoffe >> MoneyTaxi;

    int AllMoney = MoneyCoffe + MoneyTaxi;
    if(AllMoney > (Note10 * 10 + Note50 * 50 + Note100 * 100)) {
    std::cout << "-1\n";
    system("pause");
    return 0;
    }
    int HowNotes100 = Note100, HowNotes50 = Note50, HowNotes10 = Note10;

    int Note100Cof = (HowNotes100 != 0 ? MoneyCoffe > 0 ?
    (Note100 > MoneyCoffe / 100 ?
    (MoneyCoffe % 100 < 100 ? Note100 = MoneyCoffe / 100 + 1 : Note100 = MoneyCoffe / 100)
    : Note100 = Note100, MoneyCoffe -= Note100 * 100, Note100)
    : 0 : 0),

    Note50Cof = (HowNotes50 != 0 ? MoneyCoffe > 0 ?
    (Note50 > MoneyCoffe / 50 ?
    (MoneyCoffe % 50 < 50 ? Note50 = MoneyCoffe / 50 + 1 : Note50 = MoneyCoffe / 50)
    : Note50 = Note50, MoneyCoffe -= Note50 * 50, Note50)
    : 0 : 0),

    Note10Cof = (HowNotes10 != 0 ? MoneyCoffe > 0 ?
    (Note10 > MoneyCoffe / 10 ?
    (MoneyCoffe % 10 < 10 ? Note10 = MoneyCoffe / 10 + 1 : Note10 = MoneyCoffe / 10)
    : Note10 = Note10, MoneyCoffe -= Note10 * 10, Note10)
    : 0 : 0);

    HowNotes100 -= Note100, HowNotes50 -= Note50, HowNotes10 -= Note10;

    int Note100Tax =
    (HowNotes100 != 0 ? MoneyTaxi > 0 ?
    (HowNotes100 > MoneyTaxi / 100 ?
    (MoneyTaxi % 100 < 100 && MoneyTaxi % 100 != 0 ? Note100 = MoneyTaxi / 100 + 1 :
    Note100 = MoneyTaxi / 100) : Note100 = Note100, MoneyTaxi -= Note100 * 100, Note100)
    : 0 : 0),

    Note50Tax =
    (HowNotes50 != 0 ? MoneyTaxi > 0 ?
    (HowNotes50 > MoneyTaxi / 50 ?
    (MoneyTaxi % 50 < 50 && MoneyTaxi % 50 != 0 ? Note50 = MoneyTaxi / 50 + 1
    : Note50 = MoneyTaxi / 50) : Note50 = Note50, MoneyTaxi -= Note50 * 50, Note50)
    : 0 : 0),

    Note10Tax =
    (HowNotes10 != 0 ? MoneyTaxi > 0 ?
    (HowNotes10 > MoneyTaxi / 10 ?
    (MoneyTaxi % 10 < 10 && MoneyTaxi % 10 != 0 ? Note10 = MoneyTaxi / 10 + 1
    : Note10 = MoneyTaxi / 10) : Note10 = Note10, MoneyTaxi -= Note10 * 10, Note10)
    : 0 : 0);

    int ResultMoney = (Note100Cof * 100) + (Note100Tax * 100) + (Note10Cof * 50) +
    (Note50Tax * 50) + (Note10Tax * 10) + (Note10Cof * 10);

    std::cout << "ResultMoney: " << ResultMoney << '\n';
    system("pause");
    }
    Поздно, конечно, но очень не обычно сдела. Без циклов и рекурсий.
     
  6. keoRez
    *необычно , *сделал
     
Top