У исполнителя Делитель две команды, которым присвоены номера: 1. Раздели на 2
2. Прибавь 1
Первая из них уменьшает число на экране в 2 раза, вторая увеличивает его на 1. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа 54 числа 16, содержащий не более 5 команд. В ответе запишите только номера команд.
Формат входных данных
На первой строке дано целое число n (1≤n≤100) — количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.
Формат выходных данных
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.
Задачу то я решил, вот только тестирующая система говорит, что слишком много написано
Correct
1 2 2 1 2 1
1 1 2 2 2 1
1 1 1 2 2 2
Output
1 2 2 1 2 1
1 2 1 2 2 1
1 1 2 2 2 1
1 1 2 2 1 2
1 1 2 1 2 2
1 1 1 2 2 2
C++Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include
#include
using namespace std;
int main(){
int n;
cin >> n;
vector a;
for (int i = 0; i < n; i++){
int b;
cin >> b;
a.push_back(b);
}
for (int i = 1; i < n; i++){
for (int j = i; j > 0; j--){
if (a[j - 1] > a[j]){
swap(a[j], a[j - 1]);
for (auto now : a){
cout << now << " ";
}
cout << "\n";
}
else{
break;
}
}
}
return 0;
}
могу сделать код покороче если проходили списки и функции min и max
Объяснение:
a = int(input())
b = int(input())
c = int(input())
if (a > b + c) or (b > a + c) or (c > b + a):
print("impossible")
elif (c**2 == a**2 + b**2) or (a**2 == b**2 + c**2) or (b**2 == a**2 + c**2):
print("rectangular")
elif (a**2 < b**2 + c**2) and (b**2 < a**2 + c**2) and (c**2 < b**2 + a**2):
print("acute")
elif (c**2 > a**2 + b**2) or (a**2 > b**2 + c**2) or (b**2 > a**2 + c**2):
print("obtuse")
upd:почему то когда я копирую свой код от сюда и переношу в atom(редактор) такая ошибка хз в чем проблема надеюсь у тебя такой нет
upd:чтоб ее не было перепиши строки с принтами