Перейти к содержимому

Каков результат этой команды print 8 7

  • автор:

Модуль 2.2

Полное решение модуля 2.2 из курса «Поколение Python»: курс для начинающих» с ответами на вопросы и подробным кодом.

  1. Команда print() используется для вывода данных на экран
  2. Значения для вывода, указываемые через запятую в команде print() , называются аргументами или параметрами (выбрать оба варианта)

Третий номер:

Здравствуй, мир!

Напишите программу, которая выводит на экран текст «Здравствуй, мир!» (без кавычек).

# Вывод на экран print ("Здравствуй, мир!")

Четвертая задача:

Счастливая последовательность 1

В популярном сериале «Остаться в живых» использовалась последовательность чисел 4 8 15 16 23 42, которая принесла героям удачу и помогла сорвать джекпот в лотерее. Напишите программу, которая выводит данную последовательность чисел с одним пробелом между ними.

Примечание. Текст ‘4 8 15 16 23 42’ не использовать. Воспользуйтесь возможностью команды print() выводить несколько аргументов, указанных через запятую.

# put your python code here print('4', '8', '15', '16', '23', '42')

Пятая задача:

Счастливая последовательность 2

Измените предыдущую программу так, чтобы каждое число последовательности 4 8 15 16 23 42 печаталось на отдельной строке.

Примечание. Каждая последующая команда print() выводит указанный текст, начиная с новой строки.

# put your python code here print('4') print('8') print('15') print('16') print('23') print('42')

Шестой номер:

Звездный треугольник

Напишите программу, которая выводит указанный треугольник, состоящий из звездочек (*).

# put your python code here print('*') print('**') print('***') print('****') print('*****') print('******') print('*******')

Далее идут два текстовых вопроса (7 и 8 соответственно):

  • Команда input() используется для считывания данных с клавиатуры
  • Установите порядок действий:
print('Какой язык программирования ты изучаешь?') language = input() print(language, '- отличный выбор!')

Решение задач из модуля 2.2

  1. Вывод текста «Какой язык программирования ты изучаешь?»
  2. Ввод данных (пользователь вводит текст)
  3. Нажатие клавиши Enter
  4. Запись введенного текста в переменную language
  5. Вывод текста

9 упражнение:

Приветствие

На вход программе подается строка текста – имя человека. Напишите программу, которая выводит на экран приветствие в виде слова «Привет» (без кавычек), после которого должна стоять запятая и пробел, а затем введенное имя.

Формат входных данных
На вход программе подаётся одна строка — имя человека.

Формат выходных данных
Программа должна вывести текст в соотвествии с условием задачи.

Примечание. Для считывания текста используйте команду input() , для печати текста на экране используйте команду print() .

# put your python code here print('Привет,', input())

10 номер:

Любимая команда

На вход программе подается строка текста – название футбольной команды. Напишите программу, которая повторяет ее на экране со словами « — чемпион!» (без кавычек).

Формат входных данных
На вход программе подается название футбольной команды.

Формат выходных данных
Программа должна вывести текст согласно условиям задачи.

Примечание. Для считывания текста используйте команду input() , для печати текста на экране используйте команду print() .

# put your python code here a=input() print(a,'- чемпион!')

11 задача:

Повторяй за мной-1

Напишите программу, которая считывает три строки по очереди, а затем выводит их в той же последовательности, каждую на отдельной строчке.

Формат входных данных
На вход программе подаются три строки, каждая на отдельной строке.

Формат выходных данных
Программа должна вывести введенные строки в той же последовательности, каждую на отдельной строке.

Примечание. Для считывания текста используйте команду input() , для печати текста на экране используйте команду print() .

a = input() b = input() v = input() print(a) print(b) print(v)

12 (последняя) задача:

Повторяй за мной-2

Напишите программу, которая считывает три строки по очереди, а затем выводит их в обратной последовательности, каждую на отдельной строчке.

Формат входных данных
На вход программе подается три строки, каждая на отдельной строке.

Формат выходных данных
Программа должна вывести введенные строки в обратной последовательности, каждую на отдельной строке.

Примечание. Используйте 3 переменные для сохранения введённых строк текста.

s = input() b = input() d = input() print(d) print(b) print(s)

На этом модуль 2.2 закончен. Предлагаю перейти к следующему: модуль 2.3.

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Тест по дисциплине Информатика.

Внимание! Все тесты в этом разделе разработаны пользователями сайта для собственного использования. Администрация сайта не проверяет возможные ошибки, которые могут встретиться в тестах.

Тест для закрепления и проверки знаний по теме модуля 1 SoloLearn (Базовые концепции)
Система оценки: 5* балльная

Список вопросов теста

Вопрос 1

Каков результат следующей операции?

print(1 + 4*3)

Варианты ответов
Вопрос 2

Заполните пропуски, чтобы вывести «I love Python».

_____ («I love Python» __

Варианты ответов
  • print и )
  • write и )
  • type и «)
Вопрос 3
Угадайте вывод этого кода:

print( (3**2)//2 )

Варианты ответов
Вопрос 4
Какой из следующих операторов используется для вычисления остатка от деления?
Варианты ответов
Вопрос 5
Заполните поле, чтобы вывести частное от деления 100 на 42.

print(100 ______ 42)

Варианты ответов
Вопрос 6
Расположите по порядку варианты ниже, чтобы получить код, выводящий 10 в 5-й степени.

________ ( ____ ** ____ )

Пишем программу на Python с помощью ChatGPT

Представим ситуацию: мы не умеем программировать на Python, но знаем, что ChatGPT умеет. Наша задача — не написав самим ни одной строчки кода, создать код, который будет делать что-то полезное. Всё, что мы можем делать — это отправлять запросы в чат, брать оттуда код и смотреть на результат. Заодно узнаем, получится ли так программировать или нет.

Что делаем

Мы попросим ChatGPT написать код, который угадает число от 1 до 100 за 7 попыток. В «Коде» мы уже писали про эту задачу и про алгоритм её решения, поэтому будем сверяться с ним.

Для решения используем сервис Chad — внутри ChatGPT 3.5 и 4 на выбор, работает в России без ВПН и понимает русский язык.

Пишем программу на Python с помощью ChatGPT

Первый подход: код есть, но не работает

Открываем Chad и выбираем режим для разработчиков, который посередине:

Пишем программу на Python с помощью ChatGPT

Пишем запрос в самой простой форме, указывая только ключевые моменты:

Напиши программу на Python, которая угадывает число, которое загадал пользователь от 1 до 100 за 7 попыток или меньше.

В ответ сервис даёт код и поясняет, что он делает: как будет работать и для чего нужна определённая переменная:

Пишем программу на Python с помощью ChatGPT

import random def guess_number(start, end, max_attempts): print(f"Загадайте число от до . Я попытаюсь его угадать за попыток или меньше.") low = start high = end for attempt in range(1, max_attempts + 1): guess = random.randint(low, high) print(f"Попытка #: Я думаю, это число .") if guess == user_number: print("Ура! Я угадал число!") return elif guess < user_number: print("Мое число слишком маленькое.") low = guess + 1 else: print("Мое число слишком большое.") high = guess - 1 print("К сожалению, я не смог угадать число за заданное количество попыток.") user_number = random.randint(1, 100) # Пользователь загадывает число от 1 до 100 guess_number(1, 100, 7)

Но при запуске этого кода мы получаем странный результат — программа моментально проходит 7 попыток и сообщает, что ничего не угадала:

Пишем программу на Python с помощью ChatGPT

Второй подход: исправляем ошибку

Раз компьютер не отгадал число за 7 попыток, значит, с алгоритмом явно что-то не так. Просим объяснить, что происходит в программе:

Прокомментируй в этом коде каждую строку

Это код на языке Python, который представляет собой простую игру "угадай число". Давай разберем его построчно:

1. `import random` - импорт модуля random, который позволяет нам генерировать случайные числа.

2. `def guess_number(start, end, max_attempts):` - определение функции с именем `guess_number`, которая принимает три аргумента: `start` (начальное значение диапазона чисел), `end` (конечное значение диапазона чисел) и `max_attempts` (максимальное количество попыток).

3. `print(f"Загадайте число от до . Я попытаюсь его угадать за попыток или меньше.")` - выводит сообщение с использованием значений `start`, `end` и `max_attempts` для подсказки пользователю о правилах игры.

4. `low = start` - присваивает переменной `low` значение `start`. Переменная `low` будет использоваться для хранения текущего нижнего значения диапазона.

5. `high = end` - присваивает переменной `high` значение `end`. Переменная `high` будет использоваться для хранения текущего верхнего значения диапазона.

6. `for attempt in range(1, max_attempts + 1):` - начинает цикл, который будет выполняться `max_attempts` раз. Переменная `attempt` будет принимать значения от 1 до `max_attempts`.

7. `guess = random.randint(low, high)` - генерирует случайное число в диапазоне от `low` до `high` и присваивает его переменной `guess`. Это предполагаемое число, которое попытается угадать компьютер

8. `print(f"Попытка #: Я думаю, это число .")` - выводит сообщение с использованием текущего значения `attempt` и `guess` для показа предполагаемого числа компьютера.

9. `if guess == user_number:` - проверяет, равно ли предполагаемое число `guess` загаданному пользователем числу `user_number`.

10. `print("Ура! Я угадал число!")` - выводит сообщение, если компьютер угадал число пользователя.

11. `return` - прерывает выполнение функции и возвращает управление обратно в основную программу.

13. `print("Мое число слишком маленькое.")` - выводит сообщение, если предполагаемое число `guess` слишком маленькое.

14. `low = guess + 1` - присваивает переменной `low` значение `guess + 1`, чтобы ограничить будущие предполагаемые числа в большем диапазоне.

15. `else:` - выполняется, если ни одно из предыдущих условий не выполнилось, что означает, что `guess` больше, чем `user_number`.

16. `print("Мое число слишком большое.")` - выводит сообщение, если предполагаемое число `guess` слишком большое.

17. `high = guess - 1` - присваивает переменной `high` значение `guess - 1`, чтобы ограничить будущие предполагаемые числа в меньшем диапазоне.

18. `print("К сожалению, я не смог угадать число за заданное количество попыток.")` - выводит сообщение, если компьютер не смог угадать число в заданное количество попыток.

19. `user_number = random.randint(1, 100)` - генерирует случайное число от 1 до 100 и присваивает его переменной `user_number`. Это число, которое пользователь должен загадать.

20. `guess_number(1, 100, 7)` - вызывает функцию `guess_number` с аргументами `1`, `100` и `7`. Это начинает игру, где пользователь должен загадать число от 1 до 100, а компьютер будет пытаться угадать за 7 попыток или меньше.

Ага, значит, значение переменной guess, которая отвечает за очередную попытку угадать число, выбирается случайным образом (точно так же, как это делает user_number ). Но в теоретическом решении написано, что нужно взять диапазон и поделить его пополам. Значит, нам нужно попросить исправить код, чтобы диапазон делился пополам:

У тебя в коде ошибка — он угадывает число случайным образом вместо того, чтобы находить границы диапазона и делить его пополам, предлагая это как новую попытку. Исправь это и дай новый код.

Вот что получили в ответ:

Понимаю, извините за путаницу. Вот исправленный код, который выполняет угадывание числа путем деления диапазона пополам.
В этом обновленном коде используется метод деления диапазона пополам для каждой попытки. Вместо случайного числа, программе необходимо определить середину текущего диапазона (guess = (low + high) // 2).
После предложения числа пользователь проверяет ответ и сообщает программе, является ли загаданное число больше или меньше предложенного числа. Затем диапазон обновляется путем изменения нижней или верхней границы в зависимости от ответа пользователя.

def guess_number(start, end, max_attempts): print(f"Загадайте число от до . Я попытаюсь его угадать за попыток или меньше.") low = start high = end for attempt in range(1, max_attempts + 1): guess = (low + high) // 2 print(f"Попытка #: Я думаю, это число .") if guess == user_number: print("Ура! Я угадал число!") return elif guess < user_number: print("Мое число слишком маленькое.") low = guess + 1 else: print("Мое число слишком большое.") high = guess - 1 print("К сожалению, я не смог угадать число за заданное количество попыток.") user_number = random.randint(1, 100) # Пользователь загадывает число от 1 до 100 guess_number(1, 100, 7)

Копируем, вставляем в редактор кода, запускаем — и получаем ошибку NameError: name 'random' is not defined . Спрашиваем, что с ней делать:

Что означает ошибка NameError: name 'random' is not defined и как её исправить

Вот что предлагает ChatGPT:

Ошибка NameError: name 'random' is not defined возникает, когда пытаемся использовать имя, которое не было определено или импортировано в текущей области видимости.

В приведенном коде, ошибка может возникнуть, если модуль random не был импортирован в вашей программе.

Чтобы исправить эту проблему, в начале программы добавьте строку import random. Это позволит использовать функции и классы из модуля random.

Оказывается, сервис забыл добавить команду import random, чтобы можно было пользоваться генератором случайных чисел. Берём её из первой версии кода и запускаем:

Пишем программу на Python с помощью ChatGPT

Теперь код угадывает любое число до 100 за 7 попыток или меньше, но есть проблема — здесь нет взаимодействия с пользователем, в эту игру неинтересно играть, когда компьютер сам загадывает и сам угадывает числа.

Третий подход: добавляем интерактив

Чтобы пользователь тоже поучаствовал в игре, просим ChatGPT добавить интерактив:

Сейчас у тебя в коде загаданное число задаётся случайным образом. Сделай так, чтобы пользователь сам вводил число, которое он загадал.

Вот что получаем в ответ:

В этой версии кода после предложения ввести число пользователь будет приглашен ввести загаданное число, с которым программа будет пытаться угадать. Загаданное число сохраняется в переменную user_number в виде целого числа с помощью функции int(input()).

После этого программа продолжает работу и пытается угадать число, используя метод деления диапазона пополам, как было описано выше.

def guess_number(start, end, max_attempts): print(f"Загадайте число от до . Я попытаюсь его угадать за попыток или меньше.") low = start high = end user_number = int(input("Введите загаданное число: ")) for attempt in range(1, max_attempts + 1): guess = (low + high) // 2 print(f"Попытка #: Я думаю, это число .") if guess == user_number: print("Ура! Я угадал число!") return elif guess < user_number: print("Мое число слишком маленькое.") low = guess + 1 else: print("Мое число слишком большое.") high = guess - 1 print("К сожалению, я не смог угадать число за заданное количество попыток.") guess_number(1, 100, 7)

Пишем программу на Python с помощью ChatGPT

Уже интереснее, но всё равно игра проходит слишком быстро. Надо поменять компьютер и игрока местами, чтобы игрок сам отвечал на вопросы, давая подсказки компьютеру.

Четвёртый подход: добавляем ответы игрока

Улучшаем код и пишем такой запрос:

Теперь поменяй код так, чтобы программа предлагала свои варианты, а пользователь отвечал, его число больше, меньше или равно предложенному.

Сервис сразу меняет код и даёт большое пояснение, как что внутри работает:

В этой версии кода программа использует бесконечный цикл while True, чтобы предлагать свои варианты и ждать от пользователя ответа о том, больше, меньше или равно его число предложенному.

На каждой итерации цикла программа предлагает свой вариант с помощью переменной guess, затем ожидает ввода пользователя с помощью input(). Ввод пользователя сохраняется в переменную user_input.

Затем, в зависимости от ответа пользователя, программе сообщается об изменении диапазона для следующей попытки. Если число пользователя больше предложенного, мы обновляем нижнюю границу, увеличивая ее на 1 (low = guess + 1). Если число пользователя меньше предложенного, обновляем верхнюю границу, уменьшая ее на 1 (high = guess - 1). Если число пользователя равно предложенному, программа завершается.

def guess_number(start, end): print(f"Загадайте число от до . Я попытаюсь его угадать.") low = start high = end while True: guess = (low + high) // 2 print(f"Я думаю, это число .") user_input = input("Ваше число больше (>), меньше (<) или равно (=) предложенному? ") if user_input == '>': low = guess + 1 elif user_input == '

Пишем программу на Python с помощью ChatGPT

Пятый подход: счётчик попыток

Всё работает, но мы теперь не видим номера попыток, а без этого нам непонятно, получилось угадать число за 7 подходов или нет. Просим компьютер добавить это:

Теперь добавь сюда счётчик попыток, чтобы в конце добавить, за сколько попыток было угадано это число

Получаем новый код и комментарий:

В этой версии кода мы добавляем переменную attempts, которая будет отслеживать количество попыток, сделанных программой для угадывания числа.

На каждой итерации цикла while, когда программа делает новую попытку, мы увеличиваем attempts на 1 (attempts += 1).

При угадывании числа, вместе с сообщением об успехе, теперь выводится и количество попыток, затраченных на угадывание: print(f"Ура! Я угадал число за попыток!").

def guess_number(start, end): print(f"Загадайте число от до . Я попытаюсь его угадать.") low = start high = end attempts = 0 while True: guess = (low + high) // 2 attempts += 1 print(f"Попытка #: Я думаю, это число .") user_input = input("Ваше число больше (>), меньше (<) или равно (=) предложенному? ") if user_input == '>': low = guess + 1 elif user_input == ' <': high = guess - 1 elif user_input == '=': print(f"Ура! Я угадал число за попыток!") return else: print("Некорректный ввод. Попробуйте снова.") print("К сожалению, я не смог угадать число.") guess_number(1, 100)

Пишем программу на Python с помощью ChatGPT

Шестой подход: делаем красивое оформление

Технически мы решили задачу, но хочется сделать результат визуально лучше. Для этого попросим так:

Теперь сделай так, чтобы каждая попытка угадывания числа выводилась зелёным шрифтом

На этот раз сервис нам скажет, что для этого нужна отдельная библиотека, и даже скажет, как её установить:

Хорошо. Чтобы каждая попытка угадывания числа выделялась зеленым цветом, мы можем использовать модуль termcolor из сторонней библиотеки.

Перед использованием модуля termcolor удостоверьтесь, что у вас установлена эта библиотека. Если она не установлена, можете установить ее с помощью команды pip install termcolor в командной строке.

В этой версии кода мы импортируем функцию colored из модуля termcolor. Эта функция позволяет нам изменять цвет текста в консоли.

Теперь мы применяем функцию colored() к сообщению с попыткой угадывания числа, чтобы выделить его зеленым цветом: print(colored(f"Попытка #: Я думаю, это число .", 'green')).

Кроме того, при успешном угадывании числа мы используем функцию colored() для выделения сообщения с количеством попыток синим цветом: print(colored(f"Ура! Я угадал число за попыток!", 'blue')).

Устанавливаем библиотеку и запускаем код:

from termcolor import colored def guess_number(start, end): print(f"Загадайте число от до . Я попытаюсь его угадать.") low = start high = end attempts = 0 while True: guess = (low + high) // 2 attempts += 1 print(colored(f"Попытка #: Я думаю, это число .", 'green')) user_input = input("Ваше число больше (>), меньше (<) или равно (=) предложенному? ") if user_input == '>': low = guess + 1 elif user_input == ' <': high = guess - 1 elif user_input == '=': print(colored(f"Ура! Я угадал число за попыток!", 'blue')) return else: print("Некорректный ввод. Попробуйте снова.") print("К сожалению, я не смог угадать число.") guess_number(1, 100)

Пишем программу на Python с помощью ChatGPT

Что в итоге

Вот что мы выяснили:

  • Написать код с ChatGPT на Python без сильных знаний в программировании — вполне реально.
  • ChatGPT понимает контекст, может исправлять свой код и объяснять, что он делает.
  • С русскоязычными запросами всё работает нормально, сервис понимает, что мы от него хотим.
  • Так можно написать простые программы, а сложные — неизвестно, надо проверять. Этим и займёмся в следующий раз.

printЗадачи муниципального этапа олимпиады школьников по информатике 2020

print1,2,3,4,5 (7-8 класс)

close

Олимпиадные задачи на русском языке
Исполнители

close

30/10/2020 Муниципальный этап 7-8 классы (1)
27/11/2022 Задачи из копилки МЭ (проводит sartasova) (A)

copy

Ограничения: время – 200ms/200ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу для робота, который движется по полю из пяти клеток с числами от 1 до 5 и может менять числа в соседних клетках.
Первоначально робот всегда находится на двух первых клетках слева. Ваша задача - написать программу для робота,
которая расставит числа по порядку от 1 до 5, независимо от их начального расположения.
Дополнительной подзадачей является минимизация количества перемещений робота по полю в худшем случае (подробнее ниже).

Для управления роботом вы можете использовать следующие команды:

Первая команда позволяет выбрать варианты действий в зависимости от чисел в клетках, на которых находится робот.
Вторая команда позволяет повторить заданное количество раз некоторую последовательность действий.
Команды движения позволяют перейти роботу на соседнюю клетку влево или вправо. Если выполнение команды движения невозможно, то она игнорируется.
Последняя команда позволяет поменять числа в клетках, на которых находится робот.

Например, для упорядочения перестановки на рисунке робот должен переместиться на 2 клетки вправо и выполнить обмен.

Эту последовательность действий можно задать следующей программой:

*Система оценки и описание подзадач*

||.u|Подзадача 1 (20 баллов)||

В этой подзадаче 1 тест, показанный на рисунке. Количество перемещений робота не учитывается.

||.u|Подзадача 2 (70 баллов)||

Числа от 1 до 5 на поле расположены в произвольном порядке. Количество перемещений робота не учитывается.

Необходимые подзадачи: 1.

В этой подзадаче 7 тестов, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.

||.u|Подзадача 3 (10 баллов)||

Необходимые подзадачи: 1, 2.

В этой подзадаче 1 тест.

В зависимости от начального расположения чисел на клетках для их упорядочения может потребоваться разное количество перемещений робота по полю.
Существует перестановка, для которой теоретический минимум количества перемещений
для упорядочения этой перестановки является максимальным по сравнению с другими перестановками (худший случай). Пусть он равен `N`.

Программа запускается на всех возможных перестановках чисел от 1 до 5, и определяется
максимальное количество перемещений робота `M` (количество успешно выполненных команд движения робота),
которое потребуется для упорядочения какой-либо из этих перестановок (худший случай).
Тест считается пройденным, если `M` = `N`.

Для написания программы для робота используется [специальная версия среды Blockly](blockly/2522.html).
Вы можете использовать полную среду Blockly при решении других задач этого соревнования, выбрав пункт Blockly в информационном меню задачи.

Для проверки работы используйте кнопки:

Первая кнопка позволяет отправить ваше решение для проверки в проверяющую систему соревнований, вторая кнопка выполняет запуск программу локально, третья –
пошаговое выполнение или временная остановка программы, четвертая – завершение выполнения программы, после которой программа будет выполняться сначала.

Щелкая мышкой по клеткам начального состояния поля, можно задать исходный порядок чисел для тестирования программы.

printАлгоритм (7-9 класс)

close

Реализация алгоритма по его схеме
Олимпиадные задачи на русском языке

close

30/10/2020 Муниципальный этап 7-8 классы (3)
27/11/2022 Задачи из копилки МЭ (проводит sartasova) (C)
28/08/2023 Реализация алгоритма по схеме (проводит BOGAT) (K)

copy

Ограничения: время – 200ms/300ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

Реализуйте на одном из языков программирования алгоритм, представленный на схеме. Для проверки нечетности вычислите остаток от деления на 2.

Первая строка ввода содержит одно целое число `N` (`1 Вторая строка ввода содержит одно целое число `M` (`1

Вывести одно целое число — вычисленный ответ.

```sample Пример вывода
22
```

В этой задаче 5 тестов, каждый тест оценивается в 20 баллов. Баллы за каждый тест начисляются независимо.

По запросу сообщается результат окончательной проверки на каждом тесте.

printДве строки (9-11 класс)

close

Полный перебор
Максимум (минимум) для последовательности вычисляемых значений
Олимпиадные задачи на русском языке

close

30/10/2020 Муниципальный этап 10-11 классы (4)

copy

Ограничения: время – 250ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

Даны две строки одинаковой длины из латинских букв.
Напишите программу, которая составляет из них новую строку,
выбирая для `i`-й буквы новой строки `i`-ю букву из первой или второй строки.
Новая строка должна содержать как можно больше повторений одной из букв.
Если существует несколько вариантов для новой строки, максимизирующих повторение какой-то буквы,
можно вывести любой из них.
Например, из строк BASIC и ABBAT, можно получить строки BBBIT (максимизируется повторение буквы B) или
AABAC (максимизируется повторение буквы A).

Первая строка ввода содержит первую строку из прописных латинских букв, вторая строку - вторую строку той же длины.

Вывести результирующую строку.

```sample Пример ввода
BASIC
ABBAT
```

```sample Пример вывода
BBBIT
```

*Система оценки и описание подзадач*

||.u|Подзадача 1 (50 баллов)||

Длина строк от 1 до 100 символов.

В этой подзадаче 5 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

||.u|Подзадача 2 (50 баллов)||

Необходимые подзадачи: 1.

Длина строк от 100 до 100000 символов.

В этой подзадаче 5 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

По запросу сообщается результат окончательной проверки на каждом тесте.

printЛабиринт (7-8 класс)

close

Олимпиадные задачи на русском языке
Исполнители

close

30/10/2020 Муниципальный этап 7-8 классы (2)
27/11/2022 Задачи из копилки МЭ (проводит sartasova) (E)

copy

Ограничения: время – 200ms/200ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

> Из книги Перельман Я. И. Лабиринты, 1931:
>
> Существует очень простой способ входить в любой лабиринт, не боясь в нем заблудиться. Пользуясь этим правилом, можно всегда найти обратный выход из всякого лабиринта, как бы запутаны ни были его переходы. Вот в чем состоит правило безопасного блуждания в лабиринтах:
"Надо ходить по лабиринту, все время касаясь его стенки одной и той же рукой." Это значит, что при входе в лабиринт вы должны коснуться его стенки одной рукой (все равно, правой или левой) и во все время блуждания в нем продолжать касаться стенки той же самой рукой.

Лабиринт имеет размеры `5 xx 5`, между некоторыми клетками могут быть стены. В начальном состоянии робот находится на клетке с координатами (1,1) и
направлен на клетку (1,2), как показано на рисунке.

Ваша задача - написать программу, которая приведет робота в клетку с координатами (5,5), пользуясь правилом одной руки.
После завершения выполнения программы робот должен находится в клетке (5,5), направление не важно.

Для управления роботом вы можете использовать следующие команды:

Команда "двигаться вперед" перемещает робота вперед на следующую клетку, если впереди нет стенки.
Если выполнение команды невозможно, то она игнорируется. Следующие команды выполняют поворот робота.
Остальные команды можно использовать в логических условиях в циклах и ветвлениях.

В задаче 10 тестов, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте. Первый тест совпадает с лабиринтом на рисунке.
Гарантируется, что во всех лабиринтах существует путь из клетки (1,1) в клетку (5,5).

Для написания программы для робота используется [специальная версия среды Blockly](blockly/2523.html).
Вы можете использовать полную среду Blockly при решении других задач этого соревнования, выбрав пункт Blockly в информационном меню задачи.

Для проверки работы используйте кнопки:

Первая кнопка позволяет отправить ваше решение для проверки в проверяющую систему соревнований, вторая кнопка выполняет запуск программу локально, третья –
пошаговое выполнение или временная остановка программы, четвертая – завершение выполнения программы, после которой программа будет выполняться сначала.

Щелкая мышкой по промежуткам между клетками начального состояния поля, можно задать расположение стен для тестирования программы.

printПерестановка (9-11 класс)

close

Динамическое программирование и запоминающие функции
Олимпиадные задачи на русском языке

close

30/10/2020 Муниципальный этап 10-11 классы (5)

copy

Ограничения: время – 200ms/400ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

Дана строка, состоящая из 0 и 1.
Необходимо переставить некоторые символы в строке так, чтобы в получившейся строке подстрока 00 появлялась ровно один раз.

Напишите программу, которая определяет минимальное количество обменов символов в заданной строке
для получения строки с единственной подстрокой 00.

Первая строка ввода содержит строку из 0 и 1.

Вывести одно целое число - минимальное количество обменов.
Если невозможно переставить символы в строке так, чтобы получить строку с единственной подстрокой 00, то вывести -1.

```sample Пример ввода 1
1001
```

```sample Пример вывода 1
0
```

```sample Пример ввода 2
0100000111
```

```sample Пример вывода 2
2
```

```sample Пример ввода 3
10000
```

```sample Пример вывода 3
-1
```

Пояснение к примеру 1: В исходной строке ничего не нужно менять.

Пояснение к примеру 2: Нужно выполнить 2 обмена, например, 5-й символ строки с 10-м и 7-й с 8-м.
Получится строка 0100101010.

Пояснение к примеру 3: Возможные перестановки строки: 10000 (3 подстроки 00), 01000 (2 подстроки 00), 00100 (2 подстроки 00), 00010 (2), 00001 (3).
После любых перестановок в строке будет не менее 2 подстрок 00.

*Система оценки и описание подзадач*

||.u|Подзадача 1 (50 баллов)||

Длина строки от 2 до 15 символов.

В этой подзадаче 10 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

||.u|Подзадача 2 (50 баллов)||

Необходимые подзадачи: 1.

Длина строки от 16 до 1000 символов.

В этой подзадаче 5 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

По запросу сообщается результат окончательной проверки на каждом тесте.

printСмешанные команды (все классы)

close

Вывод формулы
Разбор случаев
Олимпиадные задачи на русском языке

close

30/10/2020 Муниципальный этап 7-8 классы (4)

copy

Ограничения: время – 200ms/300ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

На соревнования по спортивному программированию к участию допускаются
только смешанные команды из 3 участников (1 мальчик и 2 девочки или 1 девочка и 2 мальчика).
В школе учатся `N` девочек и `M` мальчиков. Напишите программу, вычисляющую максимальное количество
команд, которое можно составить из учащихся этой школы.

Первая строка ввода содержит одно целое число `N` (`1 `) — количество девочек в школе.
Вторая строка ввода содержит одно целое число `M` (`1 `) — количество мальчиков в школе.

Вывести одно целое число — вычисленный ответ.

```sample Пример ввода 1
3
4
```

```sample Пример вывода 1
2
```

```sample Пример ввода 2
3
10
```

```sample Пример вывода 2
3
```

Пояснение к примеру 1: из 3 девочек и 4 мальчиков можно составить 2 смешанных команды: либо 2 команды (1д+2м), либо
(1д+2м) и (2д+1м).

Пояснение к примеру 2: из 3 девочек и 10 мальчиков можно составить 3 смешанных команды в составе (1д+2м), 4 мальчика не будут участвовать в соревнованиях.

*Система оценки и описание подзадач*

||.u|Подзадача 1 (60 баллов)||

В этой подзадаче 6 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

||.u|Подзадача 2 (30 баллов)||

Необходимые подзадачи: 1.

В этой подзадаче 5 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

||.u|Подзадача 3 (10 баллов)||

Необходимые подзадачи: 1,2.

В этой подзадаче 2 теста. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

По запросу сообщается результат окончательной проверки на каждом тесте.

printФорсаж (все классы)

close

Моделирование
Олимпиадные задачи на русском языке

close

30/10/2020 Муниципальный этап 7-8 классы (5)

copy

Ограничения: время – 200ms/400ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)

Маша и Витя играют в игру "Форсаж" с помощью кубика, двух фишек в форме машин и трассы из `N+1` клеток пронумерованных от 0 до `N`.
В начале игры обе машины стоят на клетке 0. Затем участники игры по очереди бросают кубик
и перемещают свою машину вперед на количество клеток, равное выпавшему на кубике количеству очков.
Если фишка одного из игроков достигает клетки с номером `N`, игра заканчивается.
Если на кубике выпадает 6, то участник делает ход и бросает кубик ещё раз. Пока у игрока выпадает 6 очков, он продолжает делать ход
и бросать кубик снова (режим форсажа).

Напишите программу, определяющую положение фишек после `M` бросков кубика. Если игра заканчивается раньше, чем будут выполнены все `M` бросков,
то определить положение фишек в момент окончания игры.

Первая строка ввода содержит одно целое число `N` (`1 Вторая строка ввода содержит одно целое число `M` (`1 Следующие `M` строк содержат по одному целому числу от 1 до 6 - количество очков, выпавшее на кубики при очередном броске.

Вывести в первой строке позицию фишки первого игрока в момент окончания игры или после `M` бросков кубика.
Во второй строке вывести позицию фишки второго игрока.

```sample Пример вывода 1
4
8
```

```sample Пример вывода 2
5
2
```

Пояснение к примеру 1: 1-й участник бросает кубик и перемещает фишку на клетку 4, 2-й участник получает на кубике 6 очков,
перемещает фишку на клетку 6, повторно бросает кубик и перемещает фишку на клетку 8.

Пояснение к примеру 2: 1-й участник бросает кубик и перемещает фишку на клетку 3, 2-й участник бросает кубик и
перемещает фишку на клетку 2, ход получает 1-й игрок, который бросает кубик, достигает финиша на клетке 5. Игра на этом заканчивается.
Оставшийся бросок кубика не используется.

В этой задаче 10 тестов, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.

По запросу сообщается результат окончательной проверки на каждом тесте.

printЯпонский кроссворд (10-11 класс)

close

Моделирование
Разбор случаев
Олимпиадные задачи на русском языке

close

30/10/2020 Муниципальный этап 10-11 классы (3)

copy

Ограничения: время – 250ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (1)

Издательство публикует книгу-раскраску с упрощенными японскими кроссвордами для дошкольников.
В отличие от обычных японских кроссвордов в упрощенном кроссворде числа находятся
со всех сторон сетки кроссворда, но указано ровно одно число, как показано на рисунке.

Если число находится слева от сетки кроссворда, это означает, что от левого края сетки должно быть закрашено
указанное количество клеток по горизонтали.
Аналогично, число справа указывает количество закрашенных клеток по горизонтали от правого края, а числа
сверху и снизу от сетки указывают количество закрашенных клеток по вертикали от верхнего и нижнего края сетки по
вертикали соответственно. Пример закрашенного кроссворда показан на рисунке.

Напишите программу, с помощью которой издатель сможет проверить корректность публикуемых кроссвордов.

Первая строка ввода содержит одно целое число `N` (`2 Далее следует четыре строки содержащие по `N` целых чисел от 0 до `N` - числа записанные по сторонам сетки кроссворда.
Сначала указаны числа слева от сетки кроссворда в порядке сверху вниз, далее числа справа от сетки кроссворда сверху вниз, далее
числа над сеткой слева направо, и в последней строке - числа под сеткой кроссворда слева направо.

Вывести сообщение YES, если числа не противоречат друг другу, иначе вывести сообщение NO.

```sample Пример ввода 1
3
3 2 0
3 0 1
2 2 1
0 0 1
```

```sample Пример вывода 1
YES
```

```sample Пример ввода 2
3
3 0 1
3 2 1
3 2 3
1 0 3
```

```sample Пример вывода 2
NO
```

Пояснение к примеру 2: Первое число сверху равное 3
противоречит числу 0 слева и числу 2 справа во втором ряду, а также числу 1 снизу.
Если сделать закраску трех клеток сверху, эти три числа станут неверными. В правильном кроссворде либо первое число сверху равно 1, либо все указанные числа должны быть равны 3.

*Система оценки и описание подзадач*

||.u|Подзадача 1 (60 баллов)||

В этой подзадаче 12 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

||.u|Подзадача 2 (40 баллов)||

Необходимые подзадачи: 1.

В этой подзадаче 10 тестов. Баллы за подзадачу начисляются только в случае, если все тесты для этой подзадачи успешно пройдены.

По запросу сообщается результат окончательной проверки на каждом тесте.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *