1. Товарняк заезжает жопой в тупик, оставляет там 4 вагона и проезжает вперед по главной ветке. 2. Пассажирский проезжает тупик, затем сдает назад в тупик и забирает эти 4 вагона, затем проезжает вперед и сдает назад на главную ветку, где отцепляет 4 товарных вагона. 3. Пункты 1 и 2 повторяются еще два раза и позади пассажирского поезда окажется 12 вагонов товарняка. 4. Товарняк с оставшимися 3 вагонами сдает назад в тупик и пассажирский спокойно проезжает по своим делам. Миссия выполнена - пассажирский пропущен. 5. Товарняк проезжает вперед, затем сдает назад по главной ветке и забирает свои 12 вагонов.
#include <ctime>
#include <stdlib.h>
using namespace std;
int main()
{
srand(time(NULL));
int N = 10, A[N], Max = 1;
cout << "A:";
for(int i = 0; i < N; i++)
{
A[i] = rand() % 281 - 140;
cout << " " << A[i];
if (A[i] > A[Max]) Max = i;
}
cout << "\nMax = " << A[Max] << "["<<Max+1<<"]";
N = Max - 2;
if (N < 0) N = -N;
int B[--N];
for(int i = 2; i < Max; i++)
B[i-3] = A[i];
for(int i = 2; i > Max; i--)
B[i-2] = A[i];
cout << "\nB:";
for(int i = 0; i < N; i++)
cout << " "<< B[i];
}