изначальное положение: взгляд на восток, нижний левый угол. поворот на 90 градусов против часовой стрелки
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
int arr[n], k=0;
for (int i=0; i<n; ++i) {cin>>arr[i]; if (arr[i]==0) ++k;}
for (int i=0; i<n-1; ++i) {
for (int j=0; j<n-i-1; ++j) {
if (arr[j]>arr[j+1]) {
int temp;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
if (k>0) {
int m;
for (m=0; m<n; ++m) if (arr[m]==0) break;
for (int i=m; i<n-k; ++i) arr[i]=arr[i+k];
for (int i=n-k; i<n; ++i) arr[i]=0;
}
for (int i=0; i<n; ++i) cout<<arr[i]<<" ";
return 0;
}
Попробую описать ход предполагаемого решения, где большие буквы -имена, а маленькие - профессии, точнее их первые буквы.
Потом пишу номер условия и, в зависимости от него, переставляю имена и профессии на соответствующие позиции.
---
Сначала запишем их так, как в условии:
Б(д) В(с) А(п) Ф(т)
Условия:
1. Просто запоминаем
2. Б(д) В(п) А(с) Ф(т)
3. Просто запоминаем
4. Ф(т) Б(д) В(п) А(с)
5. Просто запоминаем
6. Просто запоминаем
7. Ф(т) А(д) В(п) Б(с)
8. Просто запоминаем.
Проверяем выполнение всех условий, убеждаемся, что все верно.
Ответ:
1-токарь Федор
2-дантист Андрей
3-плотник Виктор
4-слесарь Борис
1) 32 (в 10) = 100000 (в 2)
2) 103 (в 6) = 37 (в 10)
3) 107 (в 10) = 6B (в 16)
Берём 2 людоедов перевозим их на 2 берег берём с самой 1 людоеда плывём на 1 высаживаем людоеда и берём 2 людей перевозим на 2 высаживаем берём людоеда плывём на 1 берег берём 2 людоеда и везём на 2 берег)