Информатика

15 732 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Предприятие «Авто-2010» выпускает двигатели для известных во всём мире автомобилей. Двигатель состоит ровно из n деталей, пронумерованных от 1 до n, при этом деталь с номером i изготавливается за pi секунд. Специфика предприятия «Авто-2010» заключается в том, что там одновременно может изготавливаться лишь одна деталь двигателя. Для производства некоторых деталей необходимо иметь предварительно изготовленный набор других деталей.

Генеральный директор «Авто-2010» поставил перед предприятием амбициозную задачу — за наименьшее время изготовить деталь с номером 1, чтобы представить её на выставке.

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

Входные данные
Первая строка входного файла содержит число n (1≤ n ≤ 100000) — количество деталей двигателя. Вторая строка содержит n натуральных чисел p1, p2, pn, определяющих время изготовления каждой детали в секундах. Время для изготовления каждой детали не превосходит 109 секунд.

Каждая из последующих n строк входного файла описывает характеристики производства деталей. Здесь i-я строка содержит число деталей ki, которые требуются для производства детали с номером i, а также их номера. В i-й строке нет повторяющихся номеров деталей. Сумма всех чисел ki не превосходит 200000.

Известно, что не существует циклических зависимостей в производстве деталей.

Выходные данные
В первой строке выходного файла должны содержаться два числа: минимальное время (в секундах), необходимое для скорейшего производства детали с номером 1 и число k деталей, которые необходимо для этого произвести. Во второй строке требуется вывести через пробел k чисел — номера деталей в том порядке, в котором следует их производить для скорейшего производства детали с номером 1.
 
Ввод Вывод
3
100 200 300
1 2
0
2 2 1
300 2
2 1
2
2 3
1 2
0
5 2
2 1
4
2 3 4 5
2 3 2
1 3
0
2 1 3
9 3
3 2 1
На вход программы поступает последовательность из N целых положительных чисел. В последовательности нет повторяющихся чисел. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре неважен). Необходимо найти количество пар, произведение элементов которых кратно 3 и между элементами пары находится максимальный элемент последовательности.

Входные данные
В первой строке входных данных задаётся количество чисел N (\(1 <= N <= 10000\)). В каждой из последующих N строк записано одно натуральное число, не превышающее 10000.

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

 

Примеры
Входные данные Выходные данные Комментарий
1






7
5 Найденные пары: (1,6) (2,6) (3,5) (3,6) (3,7)
Образование в Древнем Риме имело важное значение в жизни римлян. Богатые люди Древнего Рима верили в необходимость и важность образования. Бедные жители Рима не имели возможности получить образование, однако многие самостоятельно учились читать и писать.

В Древнем Риме было два типа школ. Первый тип – это школы для маленьких детей в возрасте до 11-12 лет, где они учились писать, читать и изучали основы математики. Дети таких школ могли легко решать различные математические задачи, в том числе продолжить следующую последовательность рядов:

1

11

21

1211

111221

312211

13112221

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

Входные данные
На вход подаются два целых числа через пробел: (\(0 <= x <=100\)) - первый член последовательности и (\(1<=n<=25\)).

Выходные данные 
Выведите n-ый ряд x-ой последовательности.

 
Примеры
Входные данные Выходные данные
1 1 4 1211
Несмотря на большую известность полководца и диктатора, игравшего большую роль в политической и военной истории Древнего Рима, Цезарь был еще писателем и литератором. Для его сочинений характерны простота и ясность стиля написания, поэтому они считаются классикой древнеримской литературы и используются для обучения латинскому языку.

А мы пока поиграем со строчками.

Дана строка S, в которой выделили подстроку, состоящую из символов с i-го по j-й включительно (символы строки S нумеруются с единицы) и поменяли местами i-й символ с j-м, (i+1) с (j-1) и так далее (конвертировали подстроку). Выведите строку S после внесенных изменений.

Входные данные
В первой строке содержится строка S, длиной не более 1000 символов, во второй – числа i и  j (\(i <= j\)).

Выходные данные
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 vjhoamkts
7 8
vjhoamtks
Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число \(19_{10} = 1\cdot2^4+0\cdot2^3+0\cdot2^2+1\cdot2^1+1\cdot2^0 \)  в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик — он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:
10011
11001
11100
01110
00111
10011

...
и результатом игры, следовательно, окажется число \(1\cdot2^4+1\cdot2^3+1\cdot2^2+0\cdot2^1+0\cdot2^0 = 28_{10}  \)

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


Решите эту задачу с использованием битовых операций!

 
Входные данные
Входной файл содержит одно целое число N (0<=N<=32767).
 
Выходные данные
Ваша программа должна вывести в выходной файл одно целое число, равное результату игры.

Примеры
Входные данные Выходные данные
1 1 1
Недавно Петя занялся изучением Excel. Сегодня он узнал о возможности условного форматирования: для каждой непустой ячейки выбранной строки можно применить логическое выражение, при истинности которого ячейка будет окрашена в соответствующий цвет.
Петя придумал два числа a и b, а затем применил следующее условное форматирование: если число в ячейке меньше либо равно a или строго больше b, то ячейка окрашивается в красный цвет. П
о данным n ячейкам строки и числам a и b, найдите число ячеек, которые покрасятся в красный цвет.
Формат входного файла
В первой строке  находится одно натуральное число n — число непустых ячеек в строке (1 ≤ n ≤ 100). Во второй строке через пробел записаны n целых чисел ci — значения, записанные в непустых ячейках строки (1 ≤ ci ≤ 1000). В третьей строке через пробел записаны два целых числа a и b (1 ≤ a < b ≤ 1000) — придуманные Петей числа.
Формат выходного файла
Выведите одно число — число красных ячеек, после применения условного форматирования.
 
Ввод Вывод
4
1 2 3 4
1 4
1
5
6 2 1 8 3
3 6
4
Шифрование - это преобразование информации, делающее ее нечитаемой для посторонних. При этом доверенные лица могут провести дешифрование и прочитать исходную информацию.
Одним из самых известных алгоритмов шифрования является шифр Цезаря. Чтобы зашифровать последовательность, к каждому элементу последовательности прибавляется некоторое целое число. Так, например, из последовательности {1, 2, 3, 4} можно получить последовательность {5, 6, 7, 8} применением шифра Цезаря с ключом «+4».
Вы смогли перехватить две последовательности чисел A и B, которые оказались одинаковой длины. Нужно проверить, могла ли первая из них быть получена из второй применением шифра Цезаря.

Формат входных данных
В первой строке задано одно число n - длина последовательности (1≤n≤1000). Во второй строке находятся n целых чисел a1, a2, ..., an - последовательность A (−104 ≤ai≤104 ). В третьей строке находятся n целых чисел b1, b2, ..., bn - последовательность B (−104 ≤bi≤104 ).

Формат выходных данных
Выведите NO, если последовательность A нельзя получить из последовательности B шифром Цезаря, иначе выведите YES, а в следующей строке выведите ключ шифра с учетом знака.
Ввод Вывод
4
1 2 3 4
5 6 7 8
YES
4
2
1 2
2 1
NO
1
-1
-2
YES
-1

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

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

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

Входные данные
Первая строка входных данных содержит  число N (2 ≤ N ≤ 50).

Во второй строке через пробел следуют N различных чисел от 1 до N — номера колечек, расположенных вдоль нити по часовой стрелке.

Выходные данные
Ваша программа должна вывести описание процесса упорядочения.

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

Количество выводимых строк  не должно превышать 50000.

Если требуемого упорядочения колечек достичь не удается,  программа должна вывести одно число –1
 
Ввод Вывод
4
3 1 2 4
4 2
4 1
0
В одной из компьютерных игр-квестов есть следующее задание. На карте игрового мира размещены N персонажей, с каждым из которых может встретиться игрок. От общения с i-м персонажем карма игрока меняется на величину ai, которая может быть как положительной, так отрицательной или даже нулем.

Изначально карма игрока равна нулю. Для того чтобы пройти на следующий уровень, нужно чтобы карма была в точности равна значению K, при этом карма также может принимать как положительные, так и отрицательные значения.

Комнаты, в которых находятся персонажи, соединены односторонними магическими порталами, поэтому игроку придется встречать персонажей в определенной последовательности: после персонажа номер i он попадает к персонажу номер i + 1, затем к персонажу номер i + 2, и т.д. В комнате последнего персонажа с номером N портала к другому персонажу нет.

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

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

Входные данные
В первой строке входных данных записаны два числа: количество персонажей N и необходимый уровень кармы K (|K| ≤ 109, K ≠ 0). Во второй строке через пробел записаны N целых чисел a1, a2, ..., aN — величины, на которые меняется карма героя после общения с персонажами с номерами 1, 2, ..., N соответственно.

Выходные данные
Выведите номер комнаты, в которую надо войти игроку и номер комнаты, из которой надо выйти, чтобы набрать карму K. Если возможных вариантов несколько, то необходимо вывести самый короткий путь, а если и таких несколько, то путь, начинающийся в комнате с как можно большим номером. Если достичь кармы K последовательно общаясь с персонажами невозможно, то выведите одно число  - 1.
 
Ввод Вывод
5 3
-2 2 -1 2 4
2 4
7 1
1 -1 1 -1 1 -1 2
5 5
4 3
2 2 2 2
-1

 

Скопируйте программу, записанную ниже, в окно редактора. 
Выберите язык программирования, на котором записана программа
Запустите программу на выполнение. Результаты работы программы будут отображаться в окне. 

Каждая задача тестируется на некотором числе тестов. Результаты каждого теста отображаются в окне результатов. 
Ваша цель - за каждую задачу получить 100% выполненных тестов. 
Удачи!

ПРОГРАММА:

import java.io.*;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        PrintWriter out = new PrintWriter(System.out);

        int a = in.nextInt();
        int b = in.nextInt();
        System.out.println(a + b);
    }
}

Дана строка. Замените в этой строке все цифры 1 на слово one.


Входные данные 
Вводится строка.

Выходные данные 
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 1+1=2 one+one=2

Дана строка, в которой буква h встречается минимум два раза. Удалите из этой строки первое и последнее вхождение буквы h, а также все символы, находящиеся между ними.

Входные данные
Вводится строка.

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

 

Примеры
Входные данные Выходные данные
1 In the hole in the ground there lived a hobbit In tobbit

Дана строка. Удалите из этой строки все символы @.

Входные данные
Вводится строка.

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

 

Примеры
Входные данные Выходные данные
1 Bilbo.Baggins@bagend.hobbiton.shire.me Bilbo.Bagginsbagend.hobbiton.shire.me

Дана строка. Получите новую строку, вставив между двумя символами исходной строки символ *. Выведите полученную строку.

Входные данные
Вводится строка.

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

Примеры
Входные данные Выходные данные
1 Python P*y*t*h*o*n
При решении задачи используйте срезы.

Входные данные
Дана строка.

Выходные данные
Выведите на экран: 
  • сначала третий символ этой строки;
  • во второй строке предпоследний символ этой строки;
  • в третьей строке первые пять символов этой строки;
  • в четвертой строке всю строку, кроме последних двух символов;
  • в пятой строке все символы с четными индексами (считая, что индексация начинается с 0, поэтому символы выводятся начиная с первого);
  • в шестой строке все символы с нечетными индексами, то есть начиная со второго символа строки;
  • в седьмой строке все символы в обратном порядке;
  • в восьмой строке все символы строки через один в обратном порядке, начиная с последнего;
  • в девятой строке длину данной строки.
 
Примеры
Входные данные Выходные данные
1 Abrakadabra r
r
Abrak
Abrakadab
Arkdba
baaar
arbadakarbA
abdkrA
11
Дано одно слово (все буквы строчные, словом считается любая последовательность символов без пробелов).
Выведите слово YES, если исходное слово является палиндромом (слово, которое одинаково читается как слева направо, так и справа налево). В противном случае выведите NO и на новой строке индекс первого символа с начала исходной строки, который не позволяет построить палиндром. 
 
Примеры
Входные данные Выходные данные
1 level YES
2 sags NO
1
На вход подается битовая строка - строка, состоящая из 0 и 1. Дополните исходную строку последним битом - битом чётности. Бит чётности равен 0, если в исходной строке чётное число единиц, и равен 1, если нечётное (в получившейся строке должно быть всегда чётное число единиц).
 
Примеры
Входные данные Выходные данные
1 00110010 001100101
На вход программе подаются две строки:
- в первой строке задается слово s;
- во второй - три целых числа a, b, c (каждое число находится в диапазоне [-len(s); len(s)-1])

Выведите на экран новое слово, образованное символами с индексами a, bc (в указанном порядке)
 
Примеры
Входные данные Выходные данные
1 информатика
2 3 4
фор
Входные данные
В первой строке задается имя пользователя.

Выходные данные
Выведите на экран:
1) в первой строке - приветствие пользователю в виде "Hello, имя!" (без кавычек)
2) во второй строке - выведите имя пользователя 10 раз через пробел.
✓ 6 796✗ 24 157100лёгкаяВойти и решать
Поделиться
Класснуть