или МНОКЛП, или МЛОКНП, или задание не поддаётся решению даже если допускать наличие в нем некритических ошибок
Объяснение:
Видимо, Вася и Петя именно играли в шпионов и даже не представляют, чтоб будет, если добавить в таким образом кодируемый текст хотя бы один лишний символ
Если мы пересчитаем общую длину всех символов (К - 3сим, Л - 2сим., ...), то окажется, что там 11 символов. В шифротексте их 12.
"Совпадение? Не думаю"))
Заметим также, что число плюсов и тильд совпадает, а число @ отличается на один.
Для начала просто попробуем исключить одну из них.
Учитывая, что всего их четыре, но две стоят подряд и их исключение принципиально не влияет на результат... ну что же, поехали.
1) + @ ~ ++ @ + @ + ~ ~
2) + @ @ ~ + + + @ + ~ ~
3) + @ @ ~ + + @ + + ~ ~
1) Варианты интерпретации первых символов:
+ @~+ ... (ОН...)
[email protected] ~ ... (МП...)
[email protected] ~+ ... (МЛ...)
Ну что ж, три не тридцать три, хотя " " уже вряд ли получится.
Кроме того, у нас есть проблема с тильдами. Дело в том, что комбинацию ~~(конец строки) может образовать только буква П в конце с какой-то буквой, у которой тильда тоже в конце. И это противоречие.
Поскольку обычно олимпиадные задания составляются так, чтобы максимально запутать и сбить с толку, то обратим своё внимание на коды @~+ и ~+. Тут мы имеем строку, содержащую @,+,~, но порядок двух букв перепутан.
Поэтому сделаем второе допущение, что изначальная кодировка правильная, а вот в сообщении произошла досадная путаница с порядком: обменяем местами последний плюс с предпоследней тильдой.
1.1) Итак, остается + @ + @ ~ + ~.
ОН... а тут как ни интепретируй, получится, что нужно второе одиночное О.
1.2) + + @ + @ ~ + ~
МП тоже бесперспективно, так как нам ещё как-то надо оттрактовать появление тильды в конце, что сделать без П (и привлечения доп.допущений) невозможно
1.3) Снова + @ + @ ~ + ~, но запрещены к использованию другие буквы.
МЛОКНП. Не очень осмысленный текст, но хотя бы без противоречий. Запомним как вариант (худший, но вариант).
2) + @ @ ~ + + + @ ~ + ~. Вычеркнули другую @.
Все варианты интерпретации обязаны будут выстраиваться вокруг О в середине, Л или Н слева от О и М справа от О (иных получить третий + сразу перед @ просто нет, ну, без повторений О)
Воспользуемся этим.
[email protected]@ЛОМ+~~
[email protected]НОМ+~~
В случае с Л получили нелепость (@ остаётся как неприкаянная).
Что касается второго, то тоже чепуха (М использовано, и без него там никак).
3) + @ @ ~ + + @ + ~ + ~. На тебя осталась вся надежда, не подведи...
+ @ @ ~ + + @ + ~ + ~
"Проблемным" выглядит кусочек последнего повторения: + ~ + ~.
Воспользуемся этим.
В середине куска может стоять только Л, в конце только П, а начало - это любая буква, заканчивающаяся на +
[email protected]@[email protected]+ЛП
Единственная оставшаяся тильда принадлежит @~+ (Н):
[email protected]Н[email protected]+ЛП
МНОКЛП
Поделитесь своими знаниями, ответьте на вопрос:
Лаба 2 Даны натуральные числа n и m (0 ≤ m ≤ 9 Выяснить, сколько раз входит цифра m в запись числа n. Лаба 3 1.Пользователь вводит первое целое число-ограничитель m. А затем начинает вводить целые числа по одному, пока не введёт число большее числа-ограничителя. Если очередное целое число больше 1, то в ответ на каждое такое число программа должна выводить все целые числа от единицы до этого числа. (В качестве внешнего цикла надо использовать while, а в качестве внутреннего можно использовать или for или while). 2.Пользователь вводит число-ограничитель. Вывести числа ёлочкой. 5 5 4 5 4 3 5 4 3 2 5 4 3 2 1 Язык - С++ извините больше нет
1)Число точно больше 100, чтобы L было 3.
2)Какие бы числа мы не ставили на позициях единиц и десятков, результата они никакого не дадут, тк отрезаются командой div
3)Ближайшее необходимое число: 500
Дописал программу, чтобы проверить. Она выводит количество подходящих комбинаций при вводе всех чисел от 1 до 500.
var
x, L, M,count,i: integer;
begin
count:=0;
for i:=1 to 500 do
begin
x:=i; L := 0;M := 0;
while x > 0 do
begin
L := L + 1; x := x div 10;
if L mod 2 = 0 then
M := M + (x mod 10);
end;
//write(L,' ');write(M);
if (L=3) and (M=5) then inc(count);
end;
writeln(count);
end.