Язык программирования

3 082 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Дед мороз получил очень странное послание! Помогите ему. Напишите программу, которая выводит это сообщение в понятной форме 

–Т—Л–≤–µ–і–Є—В–µ –і–≤–∞–і—Ж–∞—В—М –њ–µ—А–≤—Л—Е –њ—А–Њ—Б—В—Л—Е —З–Є—Б–µ–ї
 
Мумми-Тролли, полные энтузиазма, решили установить самую высокую ёлку в Муми-доле. Однако, когда они начали искать подходящее дерево, выяснилось, что в лесу растут ели разной высоты: одна — a метра, другая — b метров, а третья — c метров.

Помогите Муми-тролям выбрать из трех данных ёлок самую высокую! 

Вам дано три целых числа: a, b, c - длины ёлок (по одному числу в строке). Выведите на экран длину той ёлки, которая нужна Муми-тролям.

В биоинформатике перевод ДНК-последовательности в последовательность аминокислот — ключевой шаг в анализе генетических данных. Каждая группа из трёх нуклеотидов (триплет или кодон) кодирует определённую аминокислоту в соответствии с генетическим кодом.

Необходимо:

  1. Найти старт-кодон ATG.
  2. Найти ближайший стоп-кодон (TAA, TAG, TGA) после старт-кодона.
  3. Перевести последовательность между старт- и стоп-кодонами в аминокислотную последовательность.
  4. Повторить процесс для всех возможных белков в последовательности.
Можете использовать словарь генетического кода: https://silvertests.ru/NoteBook.aspx?id=58286
В процессе трансляции последовательность ДНК сначала транскрибируется в РНК, а затем транслируется в белок. Белки кодируются участками между старт-кодоном (ATG) и ближайшим стоп-кодоном (TAA, TAG, TGA). Длина белка измеряется количеством аминокислотных остатков, где каждые три нуклеотида (триплет) кодируют одну аминокислоту.
Надо написать программу, которая:
  • Найти все белковые последовательности в заданной цепочке ДНК.
  • Подсчитать длину каждой белковой последовательности (в аминокислотах).
  • Вывести все найденные белки и их длины.
Длина белка в аминокислотах - это количество триплетов между старт- и стоп-кодонами.

Кодоны — это триплеты нуклеотидов (три буквы), которые определяют аминокислоты в процессе трансляции (синтеза белка).

  1. Старт-кодон — кодон, с которого начинается считывание белковой последовательности. В ДНК это всегда ATG.
  2. Стоп-кодоны — кодоны, которые сигнализируют окончание считывания. В ДНК это:
    • TAA
    • TAG
    • TGA
 

Надо написать программу, которая:

  1. Находит все стартовые (ATG) и стоп-кодоны (TAA, TAG, TGA) в последовательности ДНК.
  2. Возвращает их позиции (индексы).
Формат входных данных
Строка содержит последовательность ДНК

Формат выходных данных
В первой строке вывести позиции старт-кодонов в порядке возрастания, во второй строке вывести позиции стоп-кодонов в порядке возрастания.
В биоинформатике часто требуется искать и подсчитывать конкретные последовательности нуклеотидов в ДНК. В данной задаче необходимо подсчитать количество повторений триплета "ATG" в заданной последовательности ДНК. Триплет "ATG" является важным мотивом, связанным с началом кодирования белков. Напишите функцию, которая принимает строку, представляющую последовательность ДНК, и возвращает количество вхождений триплета "ATG" в этой последовательности.

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

Формат входных данных
В единственной строке дана последовательность ДНК
Формат выходных данных
Выведите "Yes" если последовательность является палиндромной и "No" если не является
✓ 64✗ 65600лёгкаяВойти и решать
РНК отличается от ДНК тем, что вместо тимина (T) она содержит урацил (U). Для преобразования ДНК в РНК нужно заменить каждый символ T в последовательности ДНК на U.

Формат входных данных
Строка содержит последовательность ДНК

Формат выходных данных
Вывести последовательность РНК
 
✓ 80✗ 67600лёгкаяВойти и решать
Напишите программу, которая:
1) в первой строке запрашивает ввод строки и сохраняет ее в переменной s;
2) во второй строке запрашивает ввод строки и сохраняет ее в переменную subs;
3) выводит на экран наименьший индекс, с которого начинается подстрока subs в строке s; если строка s не содержит подстроку subs, то программа должна вывести -1.

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

Например, если дан адрес "Ленина улица, 15", он должен быть преобразован в "Ленина ул., 15".

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

✓ 206✗ 208300лёгкаяВойти и решать
Напишите программу, которая из заданной строки s выводит символ с индексом i. 

Формат входных данных
В первой строке вводится строка s. Во второй строке - целое число i - индекс символа исходной строки

Формат выходных данных
Выведите символ с индексом i строки s.
✓ 196✗ 211400лёгкаяВойти и решать
Напишите программу, которая принимает на вход строку и выводит сначала данную строку в нижнем регистре, а затем в верхнем регистре.

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

Формат выходных данных
Выведите две строки:
  1. в первой строке необходимо вывести исходную строку в нижнем регистре
  2. во второй строке - в верхнем регистре
✓ 213✗ 465300лёгкаяВойти и решать
Напишите программу, которая выполняет следующие действия

1) Запрашивает у пользователя строку и сохраняет ее в переменную s.
2) С помощью функции len() выводит на экран количество символов в s.
✓ 259✗ 89100лёгкаяВойти и решать

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

У друзей есть \(n\) слов одинаковой длины. Они хотят выбрать такое наибольшее число \(k\), чтобы можно было разбить слова на пары так, чтобы в каждой паре у слов совпадало хотя бы \(k\) первых букв.

Помогите друзьям найти искомое максимальное значение \(k\).

Формат входных данных
В первой строке входных данных находится целое число \(n\) — количество слов (\(1 \leqslant n \leqslant 2\cdot 10^5\), \(n\) — четное).

В следующих \(n\) строках заданы слова, которые есть у друзей. Гарантируется, что все строки имеют одинаковую длину и суммарная длина строк не превышает \(2 \cdot 10^6\).

Формат выходных данных
В единственной строке выведите число \(k\) — искомое максимальное значение.

Жители Зожбурга очень любят спорт и в особенности бег. Бегать обычные марафоны им надоело, поэтому они решили организовать прямоугольный забег в стиле Minecraft. Для этого на центральной площади города оборудовали стадион с прямоугольным газоном и дорожками вокруг него. Жители Зожбурга считают, что главное — не победа, а участие, поэтому цель забега — сделать красивую фотографию, а не пробежать быстрее всех.

Центральная площадь Зожбурга представляет собой прямоугольник, разделенный на одинаковые единичные квадраты. Строки пронумерованы сверху вниз с единицы, столбцы слева направо с единицы. Каждый квадрат площади имеет координаты \(r\) и \(c\) — номер строки и столбца, соответственно.

На площади находится прямоугольный газон со сторонами, параллельными сторонам площади. Координаты левого верхнего углового квадрата газона \((R_L, C_L)\), координаты правого нижнего углового квадрата газона \((R_R, C_R)\). Вокруг газона оборудованы \(n\) дорожек для \(n\) бегунов. Дорожка \(i\) находится на расстоянии \(i\) от границы газона, на дорожке \(i\) находится бегун с номером \(i\). Бегун \(i\) стартует с квадрата с координатами \((r_i, c_i)\). Бегуны стартуют одновременно с одинаковой скоростью: через каждую секунду каждый спорстмен меняет текущий квадрат на своей дорожке на следующий квадрат на своей дорожке в направлении против часовой стрелки.

На прямоугольном газоне в квадрате \((R_p, C_p)\) стоит фотограф, цель которого — сделать красивую фотографию. Фотограф тестирует инновационную камеру с двойным объективом. Эта камера делает снимок одновременно в двух противоположных направлениях. Фотограф считает фотографию красивой, если все бегуны в момент, когда он делает снимок, находятся в одновременно в строке \(R_p\) или в стоблце \(C_p\). При этом благодаря инновационному свойству камеры они могут быть либо в одной строке с ним и справа и слева от него, либо в одном столбце с фотографом и выше и ниже него.

Ваша задача — узнать, через какое минимальное количество секунд \(t\) после старта забега фотограф сможет сделать красивую фотографию, или сказать, что красивая фотография в данных условиях не получится.

Формат входных данных
В первой строке входных данных находится число \(n\) (\(1 \le n \le 18\)) — количество бегунов. В следующей строке ввода даны шесть целых чисел \(R_L\), \(C_L\), \(R_R\), \(C_R\) (\(n + 1 \le R_L \le R_R \le 100 - n\), \(n + 1 \le C_L \le C_R \le 100 - n\)), \(R_p\) (\(R_L \le R_p \le R_R\)), \(C_p\) (\(C_L \le C_p \le C_R\)) — координаты левого верхнего квадрата газона, правого нижнего квадрата газона, координаты фотографа, соответственно. Гарантируется, что \(R_R - R_L + C_R - C_L\) делится на \(4\).

В следующих \(n\) строках даны два числа \(r_i\), \(c_i\) — стартовые координаты бегуна \(i\). Гарантируется, что стартовые координаты бегуна \(i\) находятся на дорожке \(i\), на каждой дорожке находится один бегун, дорожка \(i\) находится на расстоянии \(i\) от границы газона.

Формат выходных данных
Выведите единственное число \(t\) — через какое минимальное количество секунд \(t\) после старта забега фотограф сможет сделать красивую фотографию, или \(-1\), если фотографию сделать не получится.

 

Рисунок ко второму примеру.

image
Стартовое положение бегунов.

image
Положение бегунов через 3 секунды. Все бегуны находятся в строке \(R_p\), и фотограф делает красивое фото.

В городе П для подготовки к празднику решили украсить аллею. Для этого наняли две бригады, одна отвечает за освещение аллеи, а вторая "— за озеленение аллеи, закупку саженцев сосны.

Аллею можно представить как прямую, и её решили украсить следующим образом — начать с сосны, чередовать лампы и сосны. В итоге на аллее будет высажено \(n + 1\) сосен и установлено \(n\) ламп.

Лампы поставили почти сразу же, причём двух типов — <<A>> и <<B>>. Лампы типа <<B>> светят всегда белым светом, а цвет лампы типа <<A>> зависит от её окружения. Если дерево, которое стоит слева от лампы, выше, чем дерево, которое стоит справа от лампы, то она загорается красным цветом, иначе синим.

Когда наконец-то доставили саженцы сосен, оказалось, что высоты всех саженцев попарно различны и принимают значения от \(1\) до \(n + 1\). Решено было разместить сосны так, чтобы количество красных и количество синих ламп были как можно ближе друг к другу.

Помогите ответственным за деревья разместить все \(n + 1\) саженцев так, чтобы разница между количеством красных и синих ламп была минимальна. Формально, если после высадки сосен будет \(r\) красных и \(b\) синих ламп, необходимо минимизировать величину \(|r-b|\).

Формат входных данных
В первой строке вводится одно единственное число \(n\) — количество ламп (\(1 \leq n \leq 2 \cdot 10^5\)). Во второй строке вводится \(n\) символов, \(i\)-й из которых равен <<A>> или <<B>> — тип \(i\)-й лампы.

Формат выходных данных
Выведите \(n + 1\) различных чисел от \(1\) до \(n + 1\) — высоты сосен при оптимальном размещении. Если оптимальных ответов несколько, можно вывести любой из них.

 

Иллюстрация ко второму примеру

image

Для наглядности, на иллюстрации красные лампы имеют формулу пятиугольника, а синие имеют форму звезды.

Тогда \(r = 1\), \(b = 1\), \(|r - b| = 0\) и это размещение будет одним из оптимальных.

Поделиться
Класснуть