В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
luneix123
luneix123
02.01.2023 00:04 •  Информатика

В некотором царстве жил Змей Горыныч. У него было N голов и M хвостов. Иван-царевич решил уничтожить губителя человеческих душ, для чего ему его кума Баба Яга подарила волшебный меч, так как только им можно убить Змея Горыныча. Если отрубить одну голову, то на её месте вырастает новая, если отрубить хвост, то вместо него вырастет 2 хвоста. Если отрубить два хвоста, то вырастает 1 голова, и только когда отрубить 2 головы, то не вырастет ничего. Змей Горыныч гибнет только в том случае, когда ему отрубить все головы и все хвосты. Определить минимальное количество ударов мечом, нужное для уничтожения Змея Горыныча. Входные данные

В единственной строке записаны через пробел два числа N, M (0 ≤ N, M ≤ 1000).

Выходные данные

В единственную строку нужно вывести одно число – минимальное количество ударов мечом, или -1, если уничтожить Змея Горыныча невозможно.

Пример входных данных: 3 3

Пример выходных данных: 9

Показать ответ
Ответ:
ггвв
ггвв
22.05.2023 21:22
2^n в двоичной системе - это 1 и n нулей после неё. Например, 2^5(10) = 100000(2)
Приведём все степени к основанию 2

2^3702-2^468+2^1620-108

-108 можно представить как -128 + 16 + 4

2^3702-2^468+2^1620-2^7 + 2^4 + 2^2

Теперь выстраиваем степени в порядке убывания:

2^3702+2^1620-2^468-2^7 + 2^4 + 2^2

В выражении два вычитания подряд, избавимся от этого, заменив -2^468 на -2^469 + 2^468

2^3702+2^1620 -2^469+2^468-2^7 + 2^4 + 2^2

2^3702 - 1 единица
2^4 - 1 единица
2^2 - 1 единица

Количество единиц в вычитаниях будет равно разнице степеней. Например 1000000-100=1111

2^1620 -2^469 - количеств единиц 1620-469 = 1151
2^468-2^7 - количество единиц 468-7 = 461
Общее количество единиц равно 3+1151+461 = 1615
0,0(0 оценок)
Ответ:
азат61
азат61
11.07.2022 04:40
1)
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
for (int i = 1; i < str.length(); i++)
{
if (i % 3 == 0)
{cout << str[i] << endl;}
}
_getch();
return 0;
}
2)
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{ string str;
getline(cin, str);
for (int i = 1; i < str.length(); i++)
{
 if (i % 2 == 0)
 { if (str[i] != 'a')
  { str[i] = 'a'; }
  if (str[i] != 'b')
  { str[i] = 'b'; }
  if (str[i] != 'c')
  { str[i] = 'c'; }
}
}
cout << str << endl;
_getch();
return 0;}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота