0368. Революция
Имя входного файла: | rebel.in |
Имя выходного файла: | rebel.out |
Ограничение по времени: | 2 s |
Ограничение по памяти: | 256 megabytes |
В одной далекой стране правит очень мудрый и дальновидный король. Как это всегда бывает, многие люди не согласны с правлением мудрого и дальновидного короля и хотят его свергнуть. Обычно, чтобы свергнуть короля, люди объединяются в коалиции. Рассматриваемая страна не стала исключением. Всего в стране есть n различных коалиций, i-я коалиция имеет влияние в ci различных городах (при этом в любом городе может иметь влияние только одна коалиция). Внутри i-й коалиции города нумеруются от единицы до ci.
На данный момент инфраструктура страны оставляет желать лучшего – никакие два города в стране не соединены друг с другом дорогой. Страны-соседи уже давно начали строить дороги между городами, поэтому, чтобы не отставать от современных тенденций и не прослыть консерватором, король решил строить по одной дороге в год. Обычно дорога соединяет два каких-то города, причем не важно, к какой коалиции эти города относятся. Так как строители пока малоопытны, то иногда может получаться дорога с началом и концом в одном и том же городе. А иногда из-за несогласованных планов строители могут соединять дорогой два города, между которыми уже имеется дорога.
Так как король мудр, то он приказал первому министру страны составить план строительства дорог на ближайшие m лет. Так как король дальновиден, то он подозревает своего первого министра в измене и поэтому попросил вас найти первый год, после которого между двумя различными городами одной и той же коалиции будет существовать путь из уже построенных дорог (т.е. можно будет по дорогам добраться из какого-то города в некоторый другой город этой же коалиции). Как только такой путь появится, сторонники этой коалиции устроят революцию и свергнут короля, поэтому он не может такого допустить.
Естественно, от просьбы короля отказаться невозможно, иначе вас посчитают изменником родины и казнят.
Формат входного файла
Первая строка входного файла содержит целое число n – количество различных коалиций в стране (1 ≤ n ≤ 105).
В следующей строке входного файла перечислены n целых чисел ci – количество городов подвластных i-ой коалиции (1 ≤ ci ≤ 109).
В следующей строке входного файла содержится целое число m – количество дорог в плане первого министра (1 ≤ m ≤ 105).
В следующих m строках перечислены дороги: j-ая строка содержит четыре целых числа fj, uj, sj, vj – в j-ый год город под номером uj, принадлежащий коалиции fj, соединяется дорогой с городом под номером vj, который принадлежит коалиции sj (1 ≤ fj, sj ≤ n, 1 ≤ uj ≤ cfj, 1 ≤ vj ≤ csj).
Формат выходного файла
Если министр оказался верен своему королю, и после выполнения его плана никакие два города, принадлежащие одной коалиции, не окажутся соединены путём, то в единственной строке выходного файла выведите <<Plan is OK.>> (без кавычек). В противном же случае выведите <<Rebel after x year(s).>> (без кавычек) где x – первый год, после которого между какими-то двумя городами, принадлежащими одной и той же коалиции, будет существовать путь.
Пример:
rebel.in | rebel.out |
---|---|
3 2 2 2 3 1 1 2 2 2 2 1 2 1 2 3 1 | Rebel after 2 year(s). |
3 2 2 2 3 1 1 2 2 1 2 2 1 2 2 3 1 | Plan is OK. |
Источник: Открытый зимний чемпионат ПетрГУ по программированию, 15 декабря 2013
Обсудить
Отправить решение
Версия для печати