Арсений уже совсем взрослый и самостоятельный. Мама решила оставить его на m дней в одиночестве и уехать отдыхать в тёплые страны. Перед этим она наготовила ему много еды, оставила достаточное количество карманных денег и постирала всю одежду.
Однако за десять минут до отъезда в тёплые страны ей пришла в голову мысль, что Арсению надо оставить точную инструкцию, какую одежду надевать в какой из дней её отсутствия. Арсений живёт в очень необычной семье, в которой вся одежда пронумерована: например, n носков Арсения имеют различными целые номера от 1 до n . Поэтому всё, что потребовалось его маме, это указать для каждого дня два числа l i и r i — номера носков, которые надо надеть в i -й день на левую и правую ногу соответственно (разумеется, l i не совпадает с r i ). Каждый носок покрашен в один из k цветов.
Уже после отъезда матери Арсений заметил, что в некоторые дни в соответствии с инструкцией ему придётся надеть носки разных цветов, что, конечно, является досадной оплошностью, вызванной спешкой перед отъездом при составлении инструкции. Но Арсений находчивый мальчик, и, по счастливому совпадению, он нашёл у себя дома банки с красками всех k цветов, которые встречаются среди его носков.
Арсений собирается перекрасить некоторые носки таким образом, чтобы, следуя инструкции, оставленной его мамой, на протяжении каждого из m дней носить одноцветные носки. Арсений уже запланировал деловые встречи в каждый день отсутствия мамы, в течение которых у него не будет возможности заниматься перекраской носков, поэтому он должен определиться с цветами и провести всю работу именно сейчас.
Он хочет как можно быстрее расправиться с этой задачей, чтобы отправиться играть в недавно вышедшую суперпопулярную игру Bota-3, поэтому он просит вас помочь определить минимальное количество носков, которое ему придётся перекрасить, чтобы в каждый день надевать два одноцветных носка.
В первой строке находится три целых числа n , m и k ( 2 ≤ n ≤ 200 000 , 0 ≤ m ≤ 200 000 , 1 ≤ k ≤ 200 000 ) — количество носков, количество дней отсутствия мамы и количество доступных цветов соответственно.
Во второй строке находится n разделённых пробелами целых чисел c 1 , c 2 , ..., c n ( 1 ≤ c i ≤ k ) — цвета носков Арсения.
В каждой из последующих m строк находится по два целых числа l i , r i ( 1 ≤ l i , r i ≤ n , l i ≠ r i ) — номера носков, которые Арсений должен надеть в i -й день на левую и правую ногу соответственно.
Выведите единственное целое число — минимальное количество носков, которые Арсений должен перекрасить, чтобы не насмешить людей разноцветными носками ни в один из дней отсутствия мамы.
В первом примере Арсений может, например, перекрасить первый и третий носки во второй цвет.
Во втором примере ничего перекрашивать не придётся.
3 2 3 1 2 3 1 2 2 3
2
3 2 2 1 1 2 1 2 2 1
0
У Миши сегодня день рождения, и в честь этого события он решил погулять с друзьями. Поскольку день рождения Миши в морозный зимний день, дети отправились играть со снегом на поляне. Они уже заготовили n снежных шаров и были готовы лепить из них снеговиков, как вдруг Миша сообщил, что ему нравятся только красивые снеговики . В представлении Миши красивый снеговик — снеговик, состоящий из как минимум k снежных шаров, идущих в порядке невозрастания радиуса снизу вверх. Причём радиусы двух соседних шаров должны отличаться не менее чем на d сантиметров.
Поскольку дети больше не хотят катать новые снежные шары, им интересно узнать, какое максимальное число красивых снеговиков они смогут сделать из уже скатанных шаров. Помогите им решить эту задачу.
Первая строка содержит три целых числа n , k и d ( 1 ≤ k ≤ n ≤ 100 000 , 0 ≤ d ≤ 10 9 ) — количество снежных шаров, минимальное количество шаров в одном красивом снеговике и минимальную разность радиусов двух соседних шаров в красивом снеговике.
Вторая строка содержит n целых чисел r 1 , r 2 , ..., r n ( 1 ≤ r i ≤ 10 9 ) — радиусы имеющихся снежных шаров.
Выведите одно число — максимальное количество красивых снеговиков, которое можно слепить из данных снежных шаров.
В первом примере можно слепить только одного красивого снеговика, состоящего из шаров радиусами 13 и 5 .
Во втором примере можно слепить много различных пар красивых снеговиков, например из шаров радиусами 11 , 5 и 6 , 1 или 11 , 2 и 6 , 1 . Способа слепить трех красивых снеговиков нет.
В третьем примере можно лепить любых снеговиков, поскольку d = 0 , например 8 , 7 , 6 , 3 или 3 , 3 , 1 . Но оптимальным распределением шаров по снеговикам будет распределение, в котором каждый шар является отдельным снеговиком.
В четвертом примере нельзя слепить ни одного красивого снеговика.
3 2 6 5 10 13
1
7 2 5 1 6 3 4 2 11 5
2
8 1 0 1 3 3 3 5 8 7 6
8
2 2 100 1 1
0
Винни-Пух отправился в очередную Экспедицию по Лесу!
Лес представляет собой n полянок, соединённых m двусторонними тропинками. При этом возможно, что для некоторых полянок не существует способа добраться из одной в другую по тропинкам. За половину суток (день или ночь) Пух проходит ровно по одной тропинке.
Когда Пух пришёл на рассвете на очередную полянку, ему показалось, что он вернулся к полянке, с которой он начал свое путешествие. Он также уверен, что не проходил ни по одной тропинке дважды, и что все полянки до этого были различными. Также он помнит, что он отправился в Экспедицию на рассвете, то есть число дней в пути было равно числу ночей.
Вы решили помочь медвежонку и хотите определить по карте Леса, могло ли такое случиться.
Первая строка содержит число T — число наборов входных данных, которые вам предстоит обработать. Далее следуют T наборов входных данных. Каждый набор задаётся в следующем формате.
В первой строке набора входных данных заданы два числа n и m ( 2 ≤ n ≤ 500 000 , 1 ≤ m ≤ 500 000 ) — количество полянок и количество тропинок в соответствующем Лесу.
В следующих m строках содержатся описания тропинок: каждая строка состоит из двух целых чисел u i , v i ( 1 ≤ u i , v i ≤ n , u i ≠ v i ), обозначающих номера полянок, соединённых очередной тропинкой.
Гарантируется, что никакие две полянки не соединены двумя или более тропинками.
Гарантируется, что и суммарное число полянок, и суммарное число тропинок по всем наборам входных данных не превзойдёт 500 000 .
Для каждого набора входных данных выведите в отдельной строке " YES ", если в Лесу существует маршрут, удовлетворяющий описанию Пуха, и " NO " в противном случае.
Тест из условия состоит из двух наборов входных данных.
В первом примере Пух мог начать Экспедицию на полянке с номером 2 , в первый день перейти на полянку 5 , в первую ночь перейти на полянку 3 , во второй день перейти на полянку 4 и во вторую ночь вернуться обратно на полянку 2 .
Во втором примере, независимо от выбора начальной полянки, Пух может вернуться на неё, но ему в любом случае потребуется три перехода, а значит дней в пути будет больше, чем ночей.
2 5 6 1 2 2 3 3 4 4 5 5 2 5 3 3 3 1 2 2 3 3 1
YES NO
Где-то в Москве в очередной раз построили новый дом: красивый, современный и многоэтажный. Он состоит из ровно \(n\) жилых этажей, пронумерованных от \(1\) до \(n\) снизу вверх, и подземной парковки, являющейся нулевым этажом.
Дом уже был почти готов к сдаче в эксплуатацию, но вот незадача — в самый ответственный момент по всему зданию прорвало водопроводные трубы, в результате чего многие этажи залило водой. К моменту, когда все трубы были заделаны, на \(i\)-м этаже находилось \(w_i\) литров воды.
Также из-за того, что при строительстве дома все средства ушли на отделку фасада, а на перекрытия между этажами был пущен самый дешёвый материал, оказалось, что между этажами ощутимо протекают потолки. В частности, пропускная способность пола \(i\)-го этажа составляет \(v_i\) литров воды в час.
В рамках данной задачи считается, что скорость вытекания воды с этажа зависит только от пропускной способности пола и не зависит от количества воды на этаже. Временем падения воды с потолка этажа до пола также следует пренебречь. Считайте, что все этажи достаточно объёмные, чтобы вместить всю воду, скопившуюся в здании.
Владельцы стройки интересуются, через сколько часов вся вода вытечет на парковку, и они смогут начать продажи квартир?
В первой строке записано единственное целое число \(n \ (1 \le n \le 200 000\)) — количество жилых этажей здания.
Вторая строка содержит n целых чисел \(w_1, \ w_2, \dots, \ w_n \ (0 \le w_i \le 1000)\), задающих количество воды в литрах на каждом из жилых этажей здания.
Третья строка содержит \(n\) целых чисел \(v_1, \ v_2, \dots, \ v_n \ (1 \le v_i \le 200 000\)), задающих скорость протекания пола каждого из жилых этажей здания в литрах в час.
Выведите единственное число — время в часах, через которое вся вода стечёт на подземную парковку.
Ваш ответ будет засчитан, если его абсолютная или относительная погрешность не превосходит \(10^{−4}\) , а именно: если ваш ответ — \(p_{ans}\), а ответ жюри — \(j_{ans}\), то ваш ответ будет засчитан, если \(\frac{|p_{ans} \ − \ j_{ans}|}{max\{1, \ |j_{ans}|\}} \le 10^{−4}\) .
В первом примере на первом этаже изначально 10 литров воды, а на втором — 20 литров, все полы текут со скоростью 5 литров в час. Через 2 часа после начала 10 единиц воды перетечёт с первого этажа на парковку, а также со второго этажа на первый, значит, на первом этаже количество воды не изменится, а на втором этаже станет на 10 литров меньше. По прошествии ещё двух часов на первом этаже по-прежнему будет 10 литров воды, а второй этаж опустеет. А ещё через 2 часа вся вода с первого этажа стечёт на подземную парковку.
2 10 20 5 5
6.0000000000
3 0 0 100 45 40 50
2.5000000000
Около полугода назад было доказано, что проверка возможности прохождения уровня в классической игре Super Mario Bros. лежит в классе сложности PSPACE и, более того, является PSPACE -полной задачей. Мы не предлагаем вам понять, что это значит, но предлагаем почувствовать, насколько сложно бывает программно играть в компьютерные игры. Для этого мы опишем упрощённый вариант игры и предложим проверить, возможно ли пройти уровень в нашем варианте «Марио» или нет (для понимания задачи необязательно быть знакомым с оригинальной игрой).
Наш вариант игры происходит на клетчатом поле, состоящем из n строк на m столбцов. Каждая клетка поля может принадлежать одному из следующих видов:
Пронумеруем строки сверху вниз числами от 1 до n и столбцы слева направо целыми числами от 1 до m . Где-то в m -м столбце находится Принцесса (в клетке, обозначенной буквой ' p '). А в одной из клеток первого столбца стоит Марио (в клетке, обозначенной ' m '). Конечно, и Принцесса, и Марио стоят на земле, то есть в клетках, под каждым из них находится земля.
Также в некоторых столбцах от второго до ( m - 1) -го, возможно, находятся монетки. В одном столбце находится не более одной монетки, а также любая монетка лежит на земле, то есть в клетке под монеткой обязательно находится земля.
Марио, как и в классическом варианте игры, нужно добраться до Принцессы, но еще ему необходимо собрать все монетки, которые есть на поле. Марио может перемещаться только посредством прыжков.
Прыжок Марио состоит из двух частей: сначала он летит вертикально вверх, а потом горизонтально вправо. Вертикальная часть прыжка может иметь длину y от 0 до a клеток, а горизонтальная может иметь длину x от 0 до b клеток. В частности, Марио может прыгнуть вертикально вверх, не перемещаясь по горизонтали, а также прыгнуть горизонтально вправо, не смещаясь при этом по вертикали. Естественно, Марио не может пролетать сквозь клетки, содержащие землю. Обратите внимание, в отличие от оригинальной игры Марио не может перемещаться влево.
Если после окончания прыжка Марио оказывается в клетке, под которой нет земли, он падает вниз, пока под ним не окажется земля. В случае, если Марио долетает до n -й (самой нижней) строки, он проваливается вниз за экран и погибает, а игра заканчивается. Также Марио не может выпрыгивать за границы поля сверху или справа.
Если Марио оказывается в клетке с монеткой (возможно, в процессе прыжка), то он её подбирает.
Определите, возможно ли добраться до клетки с Принцессой, подобрав все монетки.
В первой строке содержится 4 целых числа n , m , a , b ( 2 ≤ n , m ≤ 100 , 1 ≤ a , b ≤ 10 ) — размеры поля и ограничения на длину прыжка Марио.
Далее следуют n строк по m символов, описывающих уровень. Каждый символ является одним из следующих: ' _ ', ' # ', ' c , ' m ', ' p ' (см. описание клеток в основной части условия).
Гарантируется, что на поле находятся единственная клетка с Марио и единственная клетка с Принцессой.
Гарантируется, что в каждом столбце от второго до ( m - 1) -го включительно находится не более одной монетки, а в первом и последнем столбце монеток нет.
Гарантируется, что Марио, Принцесса и монетки находятся в клетках, непосредственно под которыми есть клетки с землёй, в частности, Марио, Принцесса и монетки не находятся в n -й строке.
Выведите слово « YES » (без кавычек), если Марио может собрать все монетки с поля и оказаться в клетке с Принцессой, в противном случае выведите слово « NO » (без кавычек).
В первом примере Марио должен сделать два прыжка. Первым прыжком на 1 клетку вправо Марио подберёт монетку, а вторым на одну клетку вверх и две клетки вправо доберётся до принцессы.
Во втором примере Марио не может добраться до принцессы. Обратите внимание, Марио не может находиться в последней строке, так как он проваливается вниз за экран и погибает.
В четвёртом примере Марио не может сразу прыгнуть к Принцессе, потому что он должен подобрать монетку, но если он прыгнет вправо и вниз к монетке, то он не сможет потом вернуться обратно к Принцессе (обратите внимание, Марио не может вернуться обратно в стартовую точку, потому что он не умеет прыгать влево), поэтому ответ на этот тест — « NO ».
3 4 1 2 ___p mc_# ##_#
YES
4 5 10 3 __#_p mc__# ##___ _____
NO
5 3 3 2 ___ _#_ _#p m_# ##_
YES
4 4 1 3 m__p #__# _#c_ __#_
NO