Темы
    Информатика(2656 задач)
---> 167 задач <---
Источники --> Командные олимпиады --> Командные чемпионаты школьников Санкт-Петербурга по программированию
    1999(5 задач)
    2000(7 задач)
    2001(8 задач)
    2002(8 задач)
    2003(9 задач)
    2004(9 задач)
    2005(10 задач)
    2006(10 задач)
    2007(10 задач)
    2008(9 задач)
    2009(10 задач)
    2010(10 задач)
    2011(9 задач)
    2012(10 задач)
    2013(10 задач)
    2014(11 задач)
    2015(11 задач)
    2016(11 задач)
Страница: << 24 25 26 27 28 29 30 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

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

Каждый день на его забор приклеивают новое объявление. Таким образом за последние \(n\) дней на забор наклеено уже \(n\) объявлений и Ивану кажется, что рекламой заклеен уже весь забор, состоящий из \(m\) досок. Доски пронумерованы вдоль забора от \(1\) до \(m\).

Оказалось, что в каждый из \(n\) дней когда приходил рекламный агент и приклеивал объявление, сосед Ивана Петр записывал, какие доски оказывались заклеены этим объявлением. А именно, выяснилось что в \(i\)-й день очередное объявление было наклеено таким образом, что занимало доски с \(l_i\)-й по \(r_i\)-ю включительно. При этом рекламный агент вполне мог заклеить новым объявлением полностью или частично свое же собственное объявление.

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

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

В первой строке входного файла даны два натуральных числа \(m\) и \(n\) — число досок в заборе и число дней, в течение которых вел свои наблюдения Петр (\(1 \le m \le 10 000, 1 \le n \le 1000\)). Далее, в \(n\) строках заданы целые числа \(l_i \ , r_i \ (1 \le l_i \le r_i \le m)\), \(i\)-я пара чисел описывает отрезок забора, который заклеивались объявлением в \(i\)-й день.

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

Выведите «YES», если весь забор был заклеен объявлениями, и «NO» в противном случае.

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

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

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

План мероприятия еще не готов, но известно, что план учений танков будет таким: танки должны будут проехать с одного острова на другой, пользуясь некоторыми мостами, причем не важно, какими именно мостами будут пользоваться танки. В Байтландии много мостов, которые были построены много лет назад и для танков совершенно не предназначены. Поэтому министр обороны решил укрепить некоторые мосты. А конкретно, он хочет укрепить несколько мостов так, чтобы вне зависимости от плана учений, выполнялось условие: если была возможность переехать с острова \(u\) на остров \(v\), то после укрепления некоторых мостов можно переехать с острова \(u\) на остров \(v\) по укрепленным мостам. При этом укрепление моста — дорогая операция, поэтому министр хочет укрепить минимальное число мостов.

Министр обороны Байтландии хочет знать, сколько существует различных способов укрепления минимального числа мостов. Два способа считаются различными, если существует мост, который укреплен в одном из способов и не укреплен в другом. Помогите министру обороны найти ответ на волнующий его долгое время вопрос. Поскольку ответ может быть довольно большим, выведите его по модулю \(10^9 \ + \ 7\).

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

В первой строке входного файла заданы два целых числа \(n\) и \(m\) \((1 \le n \le 10^5 , 0 \le m \le 10^5\) ) — количество островов и количество мостов в Байтландии соответственно.

В следующих m строках заданы мосты, по одному в строке. Каждый мост задан двумя целыми числами: \(v_i\) и \(u_i\) \((1 \le v_i , u_i \le n, v_i \ne u_i)\) — номера островов, которые соединяет мост с номером \(i\).

Гарантируется, что каждый мост задан во входном файле не более одного раза.

Гарантируется, что из каждого острова выходят не более чем два моста.

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

В выходной файл выведите единственное число: остаток от деления количества способов укрепления мостов на число \(10^9 \ + \ 7\).

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

В первом примере существует три способа укрепления мостов: укрепить мосты с номерами {1, 2, 4}, либо {1, 3, 4}, либо {2, 3, 4}.

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

Лягушонок Билли сидел на камне и любовался на закат, когда понял, что проголодался. Он огляделся и с удивлением обнаружил, что в ручье около него копошатся мошки. Ручей представляет собой прямую, на которой расположен и камень, на котором сидит Билли. Лягушонок был очень голоден, и потому захотел съесть всех мошек. У Билли очень длинный язык, поэтому он может, не спрыгивая с камня, съесть любую мошку (но только одну за раз).

Однако высовывать язык на большие расстояния не так-то просто, лягушонок на каждый сантиметр высунутого языка тратит одну единицу энергии. Каждый раз, когда Билли съедает мошку из какой-то точки происходит следующее: все мошки, сидящие слева от съеденной мошки, и все мошки, сидящие справа от нее в ужасе отпрыгивают от места событий на один сантиметр вдоль ручья. Мошки, которые сидят в той же точке, что и съеденная, настолько шокированы этим событием, что не двигаются.

Если мошка в какой-то момент времени прыгает на камень, где сидит Билли, то Билли тут же съедает ее не тратя энергии. При этом другие мошки не перемещаются.

Лягушонок Билли хочет понять — какое минимальное количество единиц энергии ему потребуется для того, чтобы съесть всех мошек. Помогите ему это выяснить.

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

В первой строке входного файла задано одно натуральное числа \(n \ (1 \le n \le 100 000)\) — количество мошек. Во второй строке входного файла задано \(n\) натуральных чисел — расстояния каждой из мошек до камня. Известно, что все мошки находятся на одной прямой по одну сторону от камня. Расстояния даны в порядке неубывания. Расстояния не превышают \(10^9\) .

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

Выведите одно число — минимальное количество единиц энергии, которое потребуется Билли, чтобы съесть всех мошек.

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

Сначала Билли съест одну мошку, сидящую в точке 4. Другая мошка, сидящая в этой точке не сдвинется, обе мошки из точки 2 сдвинутся в точку 1. После того, как он съест вторую мошку в точке 4, обе мошки из точки 1 отпрыгнут в точку 0, где и будут сразу съедены.

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

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

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

Утром у Даниила было \(n\) яблок, а за день Даниил встретил \(k\) друзей. Выясните, сколько яблок у него могло остаться вечером.

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

Входной файл содержит два целых числа: \(n\) — количество яблок у Даниила и \(k\) — количество встреченных им за день друзей
\((1 \le n \le 1000, 1 \le k \le 1000)\).

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

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

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

Во многих языках программирования есть функции, которые отвечают за заполнение всего массива или некоторой его части определенным значением. В языке Pascal это функция fillchar(), в Java — Arrays.fill(), в C++ — memset(). В новом языке программирования J# появилась функция mark(), которая умеет работать только с массивами логического типа.

Функция mark, вызванная от двух параметров \(a\) и \(b\), присваивает всем элементам массива с индексами от \(a\) до \(b\) включительно значение true, Так, если взять массив длины \(4\), элементы которого нумеруются с единицы и все значения в котором изначально равны false, и выполнить с ним операции mark(1, 3) и mark(2, 4), то весь массив окажется заполнен значениями true.

Одним из первых заданий для тех, кто начинает изучать J#, является написание программы, содержащей ровно \(M\) операций mark, и полностью заполняющей значениями true массив длины \(N\), изначально заполненный значениями false.

Вы быстро справились с этим заданием, и теперь задумались: сколькими различными способами это можно сделать? Различными считаются такие способы, в которых \(i\)-я операция mark в двух программах запущена с разными параметрами хотя бы для одного \(i\) от \(1\) до \(M\). Это число может быть большим, поэтому требуется посчитать его по модулю \(10^9 + 7\).

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

В первой строке входного файла даны два натуральных числа \(N\) и \(M\) — длина массива и количество операций mark, которые должны быть в программе. (\(1 \le N, \ M \le 70\)).

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

В единственной строке выходного файла выведите остаток от деления числа способов заполнить массив из \(N\) элементов значениями true с помощью \(M\) вызовов операции mark на число \(10^9+7\).

Пояснение

Искомые варианты:
• mark(1, 1); mark(1, 2)
• mark(1, 1); mark(2, 2)
• mark(1, 2); mark(1, 1)
• mark(1, 2); mark(1, 2)
• mark(1, 2); mark(2, 2)
• mark(2, 2); mark(1, 1)
• mark(2, 2); mark(1, 2)

Примеры
Входные данные
2 2
Выходные данные
7

Страница: << 24 25 26 27 28 29 30 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест