Информатика

16 015 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: ✓ успешные, ✗ неуспешные.
Исполнитель Громозека выполяет некоторые действия с числом на экране. Громозека знает всего три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 3
Сколько существует программ, для которых при исходном числе 2 результатом является число 13 и при этом траектория вычислений содержит число 10?
Даны даты N событий, произошедших после 1930 года: Название, год, номер месяца и число. Составить программу, организующую ввод информации в структуру и сравнивающую два любых события по времени. Необходимо вывести название события, которое произошло позже.

Входные данные
В первой строке вводится число N - количество событий (\(1<=N<=100\)). Далее идут N записей в формате (через пробел):
<Событие> <день события> <месяц> <год>.
Далее идет строка с указанием названий двух событий, которые необходимо сравнить:
<событие1> <событие2>.

Событие - одно слово, день события - число от 1 до 31, месяц  - число от 1 до 12,  год - число от 1937 до 2016.

Выходные данные
Выведите название события, которое произошло позже и его дату в формате:
<событие> <день события> <Месяц> <Год>.
Если два события произошли в один день, то выведите их названия через пробел (без указания даты):
<событие1> <событие2>. 
 
Примечание
Название событий может повторяться, в таком случае необходимо брать событие, встретившееся в исходных данных позже.
 
Известна информация об N (0<N<=20) учениках класса: фамилия, имя, отчество  и дата рождения (день, месяц, год)
Определить структуру, описывающую информацию об учениках класса.
Вывести количество учеников в классе, у которых сегодня день рождения и их количество

Входные данные: 
В первой строке вводится число N - количество записей
Далее идут N записей в формате (через пробел): <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела> <день рождения - число от 1 до 31> <Месяц рождения - число от 1 до 12> <Год рождения-число>
Далее идет строка с сегодняшней датой в формате  <день - число от 1 до 31> <Месяц - число от 1 до 12> <Год -число>

Выходные данные:
Необходимо вывести на экране в столбик информацию об учениках, у которых сегоня день рождения.
Формат вывода 
 <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела>
Фамилии выводить в порядке следования исходных данных
Далее после списка учеников вывести одно число - количество учеников
Известна информация об N (0<N<=100) сотрудниках фирмы: фамилия, имя, отчество, адрес и дата поступления на работу (месяц, год)
Написать программу, организующую ввод исходных данных в структуру и вывести на экран фамилию, имя и адрес сотрудников, которые на сегодняшний день проработали в фирме не менее Z лет

Входные данные: 
В первой строке вводится число N - количество записей
Далее идут N записей в формате (через пробел): <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела> <Адрес-слово без пробела> <Месяц поступления - число от 1 до 12> <Год поступления-число>
Далее идет строка с сегодняшней датой в формате  <Месяц - число от 1 до 12> <Год -число>
Далее идет значение Z (0<Z<=10) - количество проработанных лет

Выходные данные:
Необходимо вывести на экране в столбик информацию о сотрудниках, проработавших в фирме не менее Z лет.
Формат вывода 
 <Фамилия-слово без пробела> <Имя-слово без пробела> <Отчество-слово без пробела> <Адрес-слово без пробела> 
Фамилии выводить в порядке следования исходных данных
Даны названия 26 городов и стран, в которыз они находятся. Среди них есть города, находящиеся в разных странах. 
Написать программу, которая организовывает ввод исходных данных в структуру и вывести названия городов  и их количество, находящихся в заданной стране.

Входные данные: 
в первой строке задается название страны
далее идут 26 строк в формате <Страна> <Город>


Выходные данные:
Необходимо вывести все города, которые находятся в стране, указанной в первой строке входных данных.
Каждый город выводить с новой строки
Сразу после списка городов вывести их количество (одно целое число)
Дана строка, представляющая собой адрес URL. Части URL разделяются знаком / или //. 
Необходимо разобрать строку URL на части и вывести каждую часть с новой строки.

Входные данные
 
В первой строке задается URL адрес. В начале и в конце строки лишних пробелов нет.

Выходные данные
Необходимо вывести каждую часть URL адреса с новой строки.
 
Примеры
№ Входные данные Выходные данные
1 C:/Photo/2013/Pokhod/vasya.jpg C:
Photo
2013
Pokhod
vasya.jpg
2 http://chelyabinsk.74.ru/text/newsline/258041618673664.html http:
chelyabinsk.74.ru
text
newsline
258041618673664.html

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


Входные данные: в первой строке задается предложение.

Выходные данные: необходимо вывести самое длинное слово и количество символов в нем. Если таких слов несколько, то вывести первое из них.
 
Примеры
№ Входные данные Выходные данные
1 Vasja      poshel           guljat poshel 6

Ввести с клавиатуры символьную строку и заменить в ней все буквы «a» на «b» и все буквы «b» на «a» (заглавные на заглавные, строчные на строчные).

Входные данные
В первой строке задается строка без пробелов.

Выходные данные
Необходимо вывести модифицированную строку.
 
Примеры
№ Входные данные Выходные данные
1
aabbAABBccCC
bbaaBBAAccCC
Сначала Антону Витальевичу показалось, что объявить приз на самую упоротую задачу – очень хорошая идея. Но когда его просто завалили этими задачами, он понял, что не успеет проверить их все к Новому Году. Поэтому он, пообещав хорошую оценку в журнал, дал Вам задание написать проверяющую эти задачи программу. (Ваш вопрос «А почему вы не можете сделать этого сами?» остался без ответа).

Задача – это набор текста, содержащего русские слова, заглавные латинские символы и числа, разделённые знаками препинания, специальными символами и пробелами. Упоротость задачи можно выразить целым неотрицательным числом, зависящим от многих факторов. Во-первых, чем длиннее задача, тем она упоротее, поэтому за каждое русское словоупоротость увеличивается на 1. Но если задача слишком длинная, то она из упоротой превращается в скучную. Поэтому, если количество слов превышает 50, то за каждое лишнее слово упоротость уменьшается на 2. Во-вторых, чем больше исходных данных, то есть латинских символов, тем задача упоротее, так что за каждый латинский символ упоротость умножается на 2. В-третьих, чем больше чисел нам дано сразу, тем задача скучнее, поэтому за каждое число упоротость делится на 10. Но если число отделено от латинского символа только пробелами, знаками препинания или специальными символами, то оно считается ограничением и вместо деления на 10 просто увеличивает упоротость на 30. В-четвёртых, знаки препинания – это всегда скучно, так что из-за них упоротость уменьшается на округлённый вверх двоичный логарифм их общего количества. Специальные символы и пробелы на упоротость никак не влияют. Если в результате получается нецелое число, оно округляется вниз.

Общая длина задачи не более 2*10^9 символов.
Русские слова - слова, состоящие из символов, не являющихся заглавными латинскими буквами, числами, знаками препинания и специальными символами.
Двоичным логарифмом нуля считать ноль.
К знакам препинания относятся , . ! ? ( ) : 
К специальным символам относятся & * = + - / ><
 
Дана задача. Вам необходимо подсчитать её общую упоротость.
 
Формат ввода
Дан текст с единственным символом переноса в конце.
 
Формат вывода
Вывести единственное число – общую упоротость задачи.

Пример
Ввод:
2 N 2 N 2 N 2 N 2
 
Вывод:
2400

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

Но когда Вася приступил к украшению, он понял, что совершил страшную ошибку. Ударопрочные шарики были одноцветными и скучными, поэтому Вася не мог развесить их как попало, как он делал это раньше. Пришлось ему разрабатывать алгоритм украшения. Для начала он соотнёс каждому цвету его индекскрасоты – параметр от 0 до 109. Чем он больше, тем более красивым кажется Васе шар этого цвета. Потом он случайным образом развесил шарики у пола (на каждую ветку Вася всегда вешает только один шар). Для всех остальных веток Вася смотрел на их нижних соседей, определял, какой из висящих на этих ветках шариков красивее, и вешал на эту ветку точно такой же.

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

Нижние ветви пронумерованы от 1 до 2^(N- 1), более верхним Вася из лени решил номера не давать. Вася подаёт на вход два вида запросов. В первом он заменяет какой-либо шар в нижнем уровне с номером k на шар цвета c, и хочет узнать, на скольких слоях веток (кроме нижнего) ему придётся перевесить шары, чтобы ёлка по-прежнему подходила под описанный выше алгоритм. Во втором он хочет узнать цвет самого красивого шара в секторе от l до r. К сектору относятся все ветки нижнего слоя с номерами от l до r включительно, а также все находящиеся над ними ветки.То есть, если N = 3, то к секторуот 1 до 2 относятся ветки 1 и 2, а также третья ветка, находящаяся между ними чуть выше.

Формат ввода
В первой строке задана глубина ёлки N (N<= 15) и количество запросов M (M<= 107). Во второй строке задана первоначальная развеска нижних шариков, представленная их индексами красоты. В следующих M строках заданы запросыдвух типов (первый обозначен цифрой 1, а второй, как ни странно, 3). Описание запросов дано выше.

Формат вывода
Нужно вывести Mстрок, содержащих ответы на запросы.
Пример
Ввод:
4 5
1 1 2 3 100 7 11 3
3 1 8
3 2 4
1 5 4
3 1 8
1 5 9
 
Вывод:
100
3
3
11
1
 
(c) Даниил Кирионенко, 9и
Сегодня в Москве отмечается Новый год. Для танца составили схему, на которой показано кто и где находится. Есть несколько групп людей, одетых в разных персонажей. 

Е-елка
О-охрана
1-зона 1
2-зона 2
3-зона 3
4-зона 4
Х-олени
К-зайцы
С-снеговики
М-медведи
Л-лисицы
В-волки
П-подарки
Д-деды Морозы.

Вот план для размеров поля 9 на 9. Размер поля всегда нечетный и больше 8.

О М М М 2 С С С О
Л О М М 2 С С О К
Л Л О М 2 С О К К 
Л Л Л О О О К К К
3 3 3 О Е О 1 1 1
В В В О О О Х Х Х
В В О П 4 Д О Х Х
В О П П 4 Д Д О Х
О П П П 4 Д Д Д О

Человек, находящийся в зоне 1, одет в зайца, если стоимость его костюма кратна 3, в противном случае, он одет в оленя.
Человек, находящийся в зоне 2, одет в снеговика, если стоимость его костюма кратна 5, в противном случае, он одет в медведя.
Человек, находящийся в зоне 3, одет в лисицу, если стоимость его костюма кратна 5, в противном случае, он одет в волка.
Человек, находящийся в зоне 4, одет в подарок, если количество единиц его стоимости , записанной в двоичной системе счисления, больше количества нулей, в противном случае, он одет в Деда Мороза.
Про каждый костюм известно, за сколько его можно сшить.
Посчитайте и выведите стоимость костюма елки, затем охраны.
Затем надо вывести в порядке убывания стоимость и название костюма персонажа.

  • Входные данные:
    Вводится n-размер квадратной матрицы, затем сама матрица.
  • Выходные данные:
    Вывести сначала стоимость костюма елки, затем сумму всех костюмов охраны, затем в порядке убывания стоимость костюмов остальных персонажей и название костюма.
  • Входные данные:
    9
    0 1 1 0 2 5 5 4 1
    2 3 2 4 5 6 1 2 0
    1 2 3 4 2 3 1 2 3
    1 2 2 4 3 5 7 1 2
    0 2 3 1 2 3 4 5 6
    0 1 2 3 5 3 3 4 5
    5 6 2 7 4 2 2 4 2
    8 4 3 4 3 1 3 4 5
    6 7 8 2 5 2 1 3 3
  • 2
    58
    39 podarok
    32 olen
    27 snegovik
    27 volk
    21 zayka
    16 medved
    16 ded moroz
    10 lisiza

(с) Чуканова Юля, 10и

int main()
{
       string s;
       vector <int> arr = { 70, 109, 108, 96, 37, 100, 114, 113, 41, 56, 96, 61, 59 };
       for(int i = 0; i < arr.size(); i++)
       {
             int x = s[i];
             cout << (x ^ arr[i]) << " ";
       }
       return 0;
}

Какое значение должна принимать строка s, чтобы в результате выполнения программы было выведено
 
1 2 3 4 5 6 7 8 9 10 11 12 13
 
?
 
Входные данные
 
Входные данные пусты
 
Выходные данные
 
Выведите одну строку – ответ на задачу.

(c) Егор Курбатов, 10и
Герцог Циклонский, обладая безграничным могуществом, что отражено в его девизе "Все могу!", ежегодно проводит конкурс среди приглашенных на исполнение самого заветного желания.
Отбор проводится следующим образом: все претенденты рассаживаются на пронумерованных стульях (нумерация стульев начинается с 1) вокруг Большого Круглого стола, после чего посредством Константы счета начинается отсчет по часовой стрелке.
Претендент, на которого падает Константы счета, обязан освободить место, отсчет продолжается до тех пор, пока не останется два человека. 
Требуется при известном числе гостей N и Константы счета С определить номера стульев, которые нужно занять, чтобы попасть в число этих двух "счастливчиков".

Входные данные
В первой строке вводится число N (\(1<=N<=100\))  - количество приглашенных претендентов. Во второй строке вводится Константы счета (\(С<=100\)).

Выходные данные
Необходимо вывести через пробел два числа - номера стульев "счастливчиков".
 
Примеры
№ Входные данные Выходные данные
1 5
3
2 4
На пронумерованных N стульях за круглым столом в зале заседаний сидят толстяки, вес каждого известен. Каждый час они пересаживаются по кругу вправо на один стул. Напишите программу, которая определяет какой из толстяков будет сидеть на каждом стуле через R часов. 

Входные данные
В первой строке вводится значение N - натуральное число (\(N<=100\)). Во второй строке, вводится N чисел - вес толстяков (от 90 до 150). В третьей строке вводится натуральное число R (\(0<=R<=100\)).

Выходные данные
Вывести в первой строке исходное положение толстяков (их вес, начиная с сидящего на первом стуле):
before: вес толстяков 
Во второй строке вывести положение толстяков через R часов:
after: вес толстяков 
 
Примеры
№ Входные данные Выходные данные
1
5
98 127 139 141 107 
3
before: 98 127 139 141 107 
after: 139 141 107 98 127 
Исполнитель Громозека выполяет некоторые действия с числом на экране. Громозека знает всего три команды, которым присвоены номера:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 2
Сколько существует программ, для которых при исходном числе 5 результатом является число 19 и при этом траектория вычислений содержит число 13?
На очередных соревнования по шахматам вывесили стартовый список. В ходе обсуждения стартового списка пошло суеверие, что трехзначный номер, состоящий из одинаковых цифр, - счастливый. Напишите программу, которая по трехзначному номеру определяет счастливый он или нет.

Входные данные
На вход программы подается одно трехзначное число n \((100<=n<=999)\).

Выходные данные 
Вывести слово YES, если номер - счастливый, в противном случае вывести NO.
 

 

Примеры
№ Входные данные Выходные данные
1 111 YES
2 112 NO

 

В свободное время шахматисты, кроме игры в футбол, большой теннис и других подвижных игр, тренируются в устном счете. Они называют трехзначное число, произведение цифр которого тоже трехзначное число. 
Напишите программу, которая по введенному трехзначному числу выводит "YES", если произведение его цифр - трехзначное число, в противном выводит "NO".

Входные данные
Трехзначное число

Выходные данные
Выведите ответ на задачу

 

Примеры
№ Входные данные Выходные данные
1 111 NO
2 999 YES

 

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


Входные данные
На вход натуральное число - номер месяца.

Выходные данные
Выведите ответ на задачу.
 

 

Примеры
№ Входные данные Выходные данные
1 5 spring
2 20 error

 

Архиватором называется программа, предназначенная для сжатия данных за счет удаления избыточной информации. В этой задаче вашей целью является разработка простейшего архиватора текстов на русском языке.  В таких текстах многие знаки стандартной таблицы символов не встречаются, поэтому они могут быть использованы для замены часто повторяющихся последовательностей символов. 
 
Заданы последовательности, которые могут быть заменены некоторыми символами английского алфавита, а также исходный текст, который следует сжать. Поскольку в исходном тексте эти последовательности могут накладываться друг на друга, результат сжатия существенно зависит от порядка замен. Ваша задача состоит в том, чтобы получить сжатый текст наименьшей длины.
 
Входные данные
В первой строке входного файла задано целое число R - количество заменяемых последовательностей и целое число N - количество строк в исходном тексте (1<=N<=1000). Далее следуют R пар строк, описывающих возможные замены. Первая строка каждой пары содержит заменяемую последовательность, а вторая - заменяющий символ, являющийся большой или маленькой английской буквой. Различным заменяемым последовательностям соответствуют разные английские буквы (большие и маленькие буквы различаются). В следующих N строках записан текст,  подлежащий сжатию. В этом тексте, также как и в заменяемых последовательностях, отсутствуют буквы английского алфавита.
 
Выходные данные
В выходной файл вывести заархивированный текст.
 
Примечания
Символы перевода строки не заменяются (т.е. замены возможны только внутри строк). Длина каждой строки входного файла не превосходит 255 символов.
 
Пример входного файла
8 10
рхиватор
b
замен
D
ены
F
зам
G
быт
h
про
d
сжат
f
ом называется
g
Архиватором называется программа, предназначенная для сжатия данных за счет удаления 
избыточной информации. В этой задаче вашей целью является разработка простейшего 
архиватора текстов на русском языке. В таких текстах многие знаки стандартной таблицы 
символов не встречаются, поэтому они могут быть использованы для замены часто 
повторяющихся последовательностей символов. 
 
Заданы последовательности, которые могут быть заменены некоторыми символами английского 
алфавита, а также исходный текст, который следует сжать. Поскольку в исходном тексте эти 
последовательности могут накладываться друг на друга, результат сжатия существенно зависит 
от порядка замен. Ваша задача состоит в том, чтобы получить сжатый текст наименьшей длины.
 
Пример выходного файла
Аbg dграмма, предназначенная для fия данных за счет удаления 
изhочной информации. В этой задаче вашей целью является разработка dстейшего 
аbа текстов на русском языке. В таких текстах многие знаки стандартной таблицы 
символов не встречаются, поэтому они могут hь использованы для Dы часто 
повторяющихся последовательностей символов. 
 
Заданы последовательности, которые могут hь DF некоторыми символами английского 
алфавита, а также исходный текст, который следует fь. Поскольку в исходном тексте эти 
последовательности могут накладываться друг на друга, результат fия существенно зависит 
от порядка D. Ваша задача состоит в том, чтобы получить fый текст наименьшей длины.
 
Поделиться
Класснуть