e-olimp 1667. Конденсация графа

Задача e-olimp.com №1667. Ссылка на засчитанное решение. Вам задан связный ориентированный граф с [latex]N[/latex] вершинами и [latex]M[/latex] ребрами [latex]\left(1\leq N\leq 20000, 1\leq M\leq 200000 \right)[/latex]. Найдите  компоненты  сильной связности заданного графа и топологически отсортируйте его конденсацию. Входные данные Граф задан во входном файле следующим образом: первая строка содержит числа [latex]N[/latex] и [latex]M[/latex]. Каждая из следующих [latex]M[/latex] строк содержит описание ребра … Continue reading

e-olimp: 694. Минимум в очереди

e-olimp: 694 — Минимум в очереди Постановка задачи На вход программы подается набор операций с очередью. Каждая операция состоит в добавлении или удаления элемента из очереди. После выполнения каждой операции найдите наименьшее число, которое находится в очереди. Сложите все полученные числа и получите ответ. Если после некоторой операции очередь оказалась пуста, то ничего не прибавляйте … Continue reading

e-olimp 6130. Дек неограниченного размера (как список деков)

Как пишет Википедия в статье Double-Ended Queue, есть три основных способа реализации двухсторонней очереди (она же — дек, дека и т.д.): — хранить дек в циклическом буфере и расширять при переполнении (при таком подходе реже нужны расширения); — хранить содержимое дека в массиве, начиная от его центра, и при переполнении расширять массив (например, создавать новый … Continue reading

AA27

Задача: В строке вставить после предпоследнего символа первый и второй символ строки. Если длина строки меньше четырех, то вывести, что это сделать невозможно. [latex]s1[/latex] [latex]s2[/latex] Комментарий qwerty qwertqwy Тест пройден _ qwert y _ qwert _ y Тест пройден qwe — Невозможно выполнить операцию. C++:

Java:

Дана строка [latex]s1[/latex]. Переписываем из неё в строку … Continue reading

АА5

В заданной строке удалить все пробелы. Если пробелов не было, выдать сообщение об этом, иначе напечатать количество удаленных пробелов. Ввод Вывод Однажды во дворе стояла ясная погода. Однаждыводворестоялаяснаяпогода. 5 Единство предмета речи — это тема высказывания. Единствопредметаречи—этотемавысказывания. 6 Слово. Слово. Пробелов не было. Код программы:

Вводим строку из стандартного потока ввода. Используем getline. Вводим счетчик пробелов. … Continue reading

e-olimp 4004. Есть ли цикл?

Задача:   Дан ориентированный граф. Требуется определить, есть ли в нём цикл. Технические условия: Входные данные: В первой строке вводится натуральное число [latex]N ( N \leq 50)[/latex] — количество вершин. Далее в [latex]N[/latex] строках следуют по [latex]N[/latex] чисел, каждое из которых — «0» или «1«. [latex]j [/latex] -е число в [latex]i[/latex] -й строке равно «1» тогда и только тогда, когда … Continue reading

АА20

Условие: В заданной строке удалить последнюю пару символов «:=», которая найдется в строке. Тесты: Ввод Вывод sdfsd  fdg :=sdrgs := :+:=:= sdf FUHIUh := sdfdf sdfsd  fdg :=sdrgs := :+:=:= sdf FUHIUh  sdfdf фыпва :+вап:=аоап:=вр   := в фыпва :+вап:=аоап:=вр    в   Код программы:

Код программы на Java:

Ссылка на ideone.com: https://ideone.com/Z94AwR План программы: … Continue reading

e-olimp 553. Рекурсия

Задача: Рекурсия Решение ссылка на ideone, засчитанное решение на e-olimp

Идея решения Можно заметить, что каждая процедура — это вершина ориентированного графа. Чтобы узнать, является ли процедура потенциально рекурсивной, нужно было запустить из неё поиск в глубину и узнать, сможем ли мы прийти к ней вновь. Было решено использовать map<string,set<string>> как структуру для описания графа: … Continue reading

Стек, дек и очередь неограниченного размера

Задачи: Стек, Очередь и Дек Решение: Код для задачи на неограниченный стек:

Код для задачи на неограниченную очередь:

Код для задачи на неограниченный дек:

Засчитанные решения на сайте e-olimp: Стек, Очередь и Дек. Идея решения: Каждый элемент в структуре должен хранить информацию о предыдущем и последующем. Для этого была организована структура Node. Для … Continue reading

e-olimp 693. Минимум в стеке

Задача e-olimp.com №693. На вход программы подается набор операций со стеком. Каждая операция состоит в добавлении или удалении элемента из стека. После выполнения каждой операции найдите наименьшее число, которое находится в стеке. Сложите все полученные числа и получите ответ. Если после некоторой операции стек оказался пуст, то ничего не прибавляйте к ответу. Если выполнить удаление … Continue reading

e-olimp 6124. Стек неограниченного размера

Стек неограниченного размера Реализуйте структуру данных «стек«. Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы.  Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы: push n Добавить в стек число n (значение n задается после команды). … Continue reading

АА24

Задача  Ввести строку S и целое положительное число N, а также символы C1 и С2. Заменить каждое вхождение символа C1 на N символов C2. Тесты Данная строка C1 C2 n Получаемая строка Комментарий a111a111 a = 3 ===111===111 пройден omnomnom n —  1 om-om-om пройден Nina N Z 1 Zina пройден Решение  Мы идем по … Continue reading

AA1

Задача.  В заданной строке заменить подряд идущие пробелы на один пробел. Тесты: Ввод Вывод Комментарий as  fg   t as fg t Пройден    rty g  uio  rty g uio Пройден

Решение: Будем записывать подходящие элементы в новую строку. Сразу добавим первый символ, он нам подходит вне зависимости от того, пробел он, или нет. … Continue reading

AA21

Задача. В строке сосчитать количество всех открывающих (квадратных, круглых и фигурных) и закрывающих скобок. Если открывающих скобок на одну больше, добавить закрывающую круглую скобку в конец, а если открывающих скобок на одну меньше, то удалить последнюю закрывающую. Тесты: Ввод Результат Комментарий ./main «({){«  «({){« Пройдено ./main «({}){«  «({}){)» Пройдено ./main «)]}]([[«  «)]}([[« Пройдено Код программы: … Continue reading

AA3

Задача В заданной строке заменить каждую цифру символом «*». Тест Ввод Вывод a;iejfhu789LKSKJD55ahg7 a;iejfhu***LKSKJD**ahg* 123456789 ********* Q1D2F3G4H5J6K7L8’\ Q*D*F*G*H*J*K*L*’\ Guten Abend!Ich heise Katja. Ich bin 18 Jahre alt Guten Abend!Ich heise Katja. Ich bin  **  Jahre alt

Cсылка на программу:http://ideone.com/CoqOFb Решение: Пробежимся по всей строке и проверим каждый символ. Если найдется цифра, то меняем ее … Continue reading

АА22

В строке убрать все запятые, пробелы и точки. Буквы нижнего регистра привести к верхнему. input output Описание ./Task22 «he,.llo,. wo.,.,.,.,r.l. d» HELLOWORLD На входе поступает один параметр  в кавычках, вкотором есть пробел. Он убирается программой. ./Task22 2425s,Go.oD b24.ye 2425SGOODB24YE На входе поступает два параметра, пробел между параметрами убирается автоматически (пробел служил разделением между параметрами).

Continue reading

АА13

Задача. В заданной строке поменять местами рядом стоящие символы между собой (1 и 2, 3 и 4 и т.д., для строки нечетной длины, последний символ не менять). Тесты. Ввод Вывод Комментарий 123456 214365 Пройден abcde badce Пройден Код.

Используя цикл, проходим по каждому второму символу строки и меняем его с предыдущим. Данный код на … Continue reading

А409

Дана действительная квадратная матрица порядка 9. Вычислить сумму тех из её элементов, расположенных на главной диагонали и выше неё, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше неё нету элементов с указанным свойством, то ответом должно служить сообщение об этом. 1 3 1 1 1 1 1 … Continue reading

А810

Дано натуральное число [latex]n (n <= 1000)[/latex]. Записать это число русскими словами (семнадцать, двести пятьдесят три, тысяча и т. д. ). Ход решения очень простой, читаем наше [latex]n[/latex] в тиме [latex]integer[/latex] и проверяем, если оно равно [latex]1000[/latex], то выводим ответ «тысяча», иначе берем число по модулю [latex]100[/latex] и присваиваем(дописываем) строке [latex]s[/latex] значение уже заранее описанного … Continue reading

AA12

Задача. В заданной строке заменить каждую точку или точку с запятой тремя точками подряд. Ввод Вывод asgahra.agargarhah;rehaehraeh.arhreh    agerge..sgsgg.g asgahra…agargarhah…rehaehraeh…arhreh    agerge……sgsgg…g ;;.grg .    .    ;   ; ………grg …    …    …   … Код программы (C++):

Java:

  Алгоритм решения: пройдём по всем символам строки от её начала и … Continue reading