Темы
    Информатика(2656 задач)
---> 228 задач <---
    2003(8 задач)
    2004(9 задач)
    2005(10 задач)
    2006(10 задач)
    2007(19 задач)
    2008(19 задач)
    2009(18 задач)
    2010(18 задач)
    2011(18 задач)
    2012(19 задач)
    2013(19 задач)
    2014(20 задач)
    2015(21 задач)
    2016(20 задач)
Страница: << 28 29 30 31 32 33 34 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Что может быть проще простого числа? Казалось бы, объяснить, что такое простое число, можно даже человеку, совершенно далёкому от математики: целое число называется простым, если оно не меньше двух и не делится ни на какое целое положительное число, кроме единицы и самого себя. Это определение будет понятно даже третьекласснику, только-только познакомившемуся с делением. Что может быть проще? Но, как часто случается в математике, за кажущейся простотой определения скрывается очень глубокая теория с множеством нетривиальных фактов, многие из которых остаются недоказанными и по сей день.

Прочитав популярную книгу Д. Дербишира «Простая одержимость» , Леопольд узнал следующий занятный факт. Оказывается, существует Теорема о распределении простых чисел , гласящая, что количество простых чисел, не превышающих N , можно очень точно оценить как . Например, начиная с N > 5000 , эта формула даёт ошибку, не более чем в 15% от реального значения. Более того, с ростом N относительная погрешность такой оценки падает, стремясь к нулю.

Леопольд крайне заинтересовался простыми числами и связанной с ними теорией. Он решил выдвинуть какую-нибудь не менее важную и серьёзную гипотезу, а потом доказать её, и назвать полученный факт теоремой Леопольда. Для этого ему нужна помощь в отыскании закономерностей, описывающих простые числа. Он просит вас написать для него программу, которая ищет для него Q отрезков, i -й из которых состоит из L i последовательных натуральных чисел и содержит определённое количество K i простых чисел. Для простоты анализа он просит вас ограничиться в поисках первыми десятью миллионами чисел. Помогите ему, и, возможно, вам с ним удастся оставить след в истории!

Входные данные

В первой строке входного файла задано целое число Q ( 1 ≤ Q ≤ 100 000 ) "— количество отрезков, которые требуются Леопольду.

В каждой из последующих Q строк задано по два целых числа L и K ( 7000 ≤ K L ≤ 100 000 ). Обратите внимание , подобные ограничения даны не случайно: Леопольд знает, что нередко закономерности начинают проявляться только при больших значениях.

Выходные данные

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

Примеры
Входные данные
3
8000 8000
80000 7654
100000 7000
Выходные данные
-1
3632 83631
1482488 1582487
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

К счастью, завод сотрудничает с союзом художников по матрёшкам. В частности, был заключён договор, позволяющий заводу заказывать роспись матрёшек. В договоре указано, что матрёшка — это упорядоченный набор из M статуэток ( 1 ≤ M ) размеров a 1 , a 2 , ..., a M , где a 1 + 1 = a 2 , a 2 + 1 = a 3 , ..., a M - 1 + 1 = a M . Там же прописано, что стоимость раскрашивания одной матрёшки равна одному тугрику, при этом количество статуэток, входящих в матрёшку, значения не имеет.

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

Входные данные

В первой строке входного файла содержится число N — количество заготовок на складе ( 1 ≤ N ≤ 2·10 5 ). Во второй строке содержатся N целых чисел s 1 , s 2 , ..., s N , где s i — это размер i -й заготовки ( 1 ≤ s i ≤ 2·10 5 ).

Выходные данные

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

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

Примеры
Входные данные
5
3 2 1 2 5
Выходные данные
3
2 2
1 3
5 5
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

Вся эта история нас бы совершенно не интересовала, если бы однажды в мэрию города не пришло письмо из далёкой страны Емакира. Оказалось, что компания Alpep подозревает администрацию уездного города в нарушении их патента на jMetro и грозится возбудить против города Эн дело. Согласно патенту, jMetro — это метро, в котором:

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

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

Входные данные

В первой строке заданы два числа N и M ( 1 ≤ N , M ≤ 2·10 5 ) — количество станций метро и перегонов между ними. Следующие M строк содержат описания перегонов: каждая из них содержит по два числа — номера станций, между которыми есть перегон. По каждому перегону составы могут ездить как в одну, так и в другую сторону. Между любыми двумя станциями существует не более одного перегона. Никакой перегон не соединяет станцию саму с собой.

Выходные данные

Выведите « YES », если метро уездного города Эн нарушает патент jMetro, и « NO » в противном случае.

Примечание

Первый пример соответствует рисунку из условия.

Примеры
Входные данные
15 19
1 4
4 11
2 10
3 2
8 7
7 6
12 10
15 10
11 2
14 9
6 13
7 9
7 11
2 5
8 3
6 10
3 6
11 3
12 3
Выходные данные
YES
Входные данные
5 4
2 1
2 3
2 5
2 4
Выходные данные
NO
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Лена - страстная любительница пасьянсов. Больше других ей нравятся стандартные пасьянсы на её стареньком рабочем компьютере под управлением доисторической операционной системы <<вай-вай-вай-крософт миндоус XP>>, из которых особенное предподчтение она отдаёт <<Свободной ячейке>> (другое название этого пасьянса - <<Солитер>>). Все стандартные расклады уже давно решаются Леной за минуту, поэтому в свободное время она придумывает, как бы усложнить правила игры.

Она предлагает вам помочь ей со следующей постановкой. В её игре участвуют \(K\) карт одной масти достоинствами от \(1\) до \(K\). Изначально они лежат в одном из слотов в следующем порядке при перечислении снизу вверх: \(1, K, K - 1, K - 2, \dots, 3, 2\). Цель её пасьянса - переложить все карты кроме единицы в один из свободных слотов в порядке \(K, K - 1, \dots 3, 2\), используя \(N\) дополнительных свободных слотов для стопок и \(F\) слотов для одиночных карт.

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

Лена не может определиться с тем, сколько именно карт может лежать в изначальной стопке и сколько должно быть слотов каждого вида. Она просит вас определить для некоторых наборов \(N\), \(F\) и \(K\), раскладывается ли пасьянс.

Входные данные

В первой строке входных данных находится единственное число \(1 \le T \le 10^5\) - количество наборов, для которых нужно решить задачу.

Каждая из следующих \(T\) строк содержит по три целых числа \(N\), \(F\), \(K\) (\(1 \le N \le 10^6\), \(0 \le F \le 4\), \(2 \le K \le 2 \times 10^9\)).

Выходные данные

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

Пояснения к примеру

Пояснение к первому примеру. В обоих случаях у нас есть три свободных слота для формирования стопок и нет дополнительных слотов для одиночных карт. В первом случае начальная стопка состоит из пяти следующих карт \(1, 5, 4, 3, 2\) (в перечислении снизу вверх). Такой пасьянс сходится: например, сначала можно за три шага сложить стопку \(3, 2\) в одном из свободных слотов, затем положить карты \(4\) и \(5\) в два других слота, а затем уже cобрать из этих четырёх карт стопку. С другой стороны, при двух свободных слотах 5 карт переложить уже нельзя.

Примеры
Входные данные
2
3 0 5
2 0 5
Выходные данные
YES
NO
Входные данные
3
2 1 5
2 4 1000
4 0 6
Выходные данные
YES
NO
YES
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

У маленькой Даши скоро день рождения. Целыми днями она обдумывает, кого бы ей пригласить, какое платье надеть, и пытается угадать, что же ей подарят. А в это время её старший брат Серёжа занят гораздо более печальными мыслями — мама сказала, что именно он будет развлекать детей после застолья.

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

  • N человек сидят за круглым столом на N мест. Перед каждым игроком лежит поднос с одинаковыми буквами-наклейками.
  • Перед началом игры ведущий называет некоторое целое число K .
  • Каждый играющий хватает букву, лежащую на подносе, перед которым он сидит, клеит ее себе на лоб, после чего все пробегают K позиций вдоль стола. Если K > 0 , то бег осуществляется по часовой стрелке (от 1 к N ), если же K < 0 , то играющий бежит в направлении против часовой стрелки (от N к 1 ). Так, например, если за столом сидят 5 человек, и ведущий называет число - 2 , то рассадка меняется с (1, 2, 3, 4, 5) на (3, 4, 5, 1, 2) .
  • Добежав до новой позиции, играющий берет букву, лежащую на подносе около этого места, и клеит ее себе на лоб после предыдущей наклеенной буквы. Таким образом, у него на лбу образуется строка.
  • Такие перебежки вокруг стола повторяются до тех пор, пока игра не закончится.
  • Игра заканчивается в тот момент, когда строка на лбу кого-то одного из игроков оказывается лексикографически меньше, чем все строчки на всех остальных лбах. Этот игрок становится победителем.
В данной игре можно считать, что ребята выполняют все движения синхронно, а буквы на подносах бесконечны, как и свободное место на лбу каждого участника.

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

Входные данные

В первой строке входного файла содержатся два целых числа N и K . 1 ≤ N ≤ 3·10 5 , | K | ≤ 3·10 5 . Следующая строка входного файла содержит строку из N строчных латинских букв. Первая буква соответствует буквам, лежащим на подносе перед первым игроком, вторая — перед вторым и так далее.

Выходные данные

Если игра с имеющимися начальными данными когда-нибудь закончится, то выведите в первой строке слово «Finite» (без кавычек), а во второй строке номер победителя (игроки нумеруются начиная с единицы). В случае, если ребята обречены бегать бесконечно, выведите в первой строке слово «Infinite» (без кавычек), а во второй строке выведите номера игроков, которые на момент наступления Апокалипсиса будут иметь лексикографически минимальные строки на своих лбах. Номера необходимо выводить в возрастающем порядке. Игроки нумеруются с единицы.

Примеры
Входные данные
3 3
aba
Выходные данные
Infinite
1 3
Входные данные
3 2
aba
Выходные данные
Finite
1
Входные данные
5 0
break
Выходные данные
Finite
4

Страница: << 28 29 30 31 32 33 34 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест