Top.Mail.Ru
Ответы

Помогите решить задачу на C++

В Будапеште, столице Венгрии, есть одна автобусная остановка, где постоянная проблема с количеством пассажиров. Проблема настолько велика, что часть пассажиров в автобусе вынуждена стоять на ногах, а часть вообще не может ехать. Помогите водителю автобуса определить, сколько пассажиров сидит на сиденье, сколько стоит и сколько пассажиров не успели попасть в автобус после остановки. Изначально в автобусе N пассажиров, а на остановке ждут M пассажиров. Водитель знает, что всего в автобусе X мест и Y футов.

входные данные
В одну строку вписываются числа N и M - количество пассажиров в автобусе и количество пассажиров на остановке.
0≤N≤X+Y.
0≤М≤500.
Во второй строке вписываются числа X и Y - количество сидячих и стоячих мест в автобусе.
0≤Х,Y≤200

По дате
По рейтингу
Аватар пользователя
Новичок
1234567891011121314151617
 #include <iostream> 
using namespace std; 
int main() { 
    int n, m, x, y; 
    cin >> n >> m >> x >> y; 
    auto nm = n + m; 
    auto xy = x + y; 
    auto sitting = nm < x ? nm : x; 
    auto standing = 0; 
    auto expect = 0; 
    if (nm > sitting) { 
        auto remainder = nm - sitting; 
        standing = remainder < y ? remainder : y; 
        if (nm > xy) expect = nm - xy; 
    } 
    cout << sitting << ' ' << standing << ' ' << expect << '\n'; 
}