Помогите решить задачу на C++
В Будапеште, столице Венгрии, есть одна автобусная остановка, где постоянная проблема с количеством пассажиров. Проблема настолько велика, что часть пассажиров в автобусе вынуждена стоять на ногах, а часть вообще не может ехать. Помогите водителю автобуса определить, сколько пассажиров сидит на сиденье, сколько стоит и сколько пассажиров не успели попасть в автобус после остановки. Изначально в автобусе N пассажиров, а на остановке ждут M пассажиров. Водитель знает, что всего в автобусе X мест и Y футов.
входные данные
В одну строку вписываются числа N и M - количество пассажиров в автобусе и количество пассажиров на остановке.
0≤N≤X+Y.
0≤М≤500.
Во второй строке вписываются числа X и Y - количество сидячих и стоячих мест в автобусе.
0≤Х,Y≤200
#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';
}