Разнорабочий Иван остался без работы. Но не из-за опозданий и прогулов, и не
из-за того, что завод, на котором он работал, остался без заказов. Всему
виной был просроченный холодец, подаренный начальнику на недавний праздник.
После очередного дня безуспешных поисков работы он зашёл в гастроном
неподалёку от дома. Поскольку деньги у него ещё оставались, он заглянул и в
винный отдел. И вот, уже стоя в очереди на кассе, он вдруг узнал в мужчине,
покупавшем дорогой коньяк, своего давнего знакомого — Василия. После горячих
приветствий и споров о том, какой коньяк выбрать, они, наконец, вышли на
улицу.
— Ну как дела, дружище? — спросил Василий.
— Да вот, работу ищу, — устало ответил ему приятель.
— А я и сам искал работу ещё совсем недавно и ведь нашёл такой отличный
вариант! — Василий был очень бодр. — Находится в нашем районе и платить
обещали прилично. И ты приходи к нам!
— Что же за работа такая? — заинтересовался безработный Иван.
— Про фирму «Остап и партнёры» слышал? Уже несколько лет занимается
заготовкой рогов и копыт. И вот, я — заготовщик третьего разряда! — гордо
произнёс Василий.
— А много ли платят? — задал резонный вопрос Иван.
— А мне пока ещё не платят, — немного разочарованно ответил новоиспечённый
заготовщик, — я первый месяц на испытательном сроке.
А мужики свою зарплату не говорят, это у фирмы политика такая. —
Тут он сделал паузу и произнёс почти шёпотом: —
Но зато наш бригадир на Мерседесе ездит!
— Эх, вот знать бы всё-таки, сколько они получают, — мечтательно произнёс
безработный, уже представляя себя за рулём Мерседеса.
— Так ведь я могу узнать! — внезапно обрадовался Василий. —
Мужики на перекурах любят похвастаться, на сколько
их зарплата больше, чем у кого-то другого. Например, Степан недавно
сказал, что получает больше чем Фёдор на 1200 рублей. А вот Фёдор как раз
жаловался, что получает меньше чем бригадир на 5500 рублей.
— Так ты собери побольше таких сравнений, и мы все зарплаты узнаем!
— обрадовался Иван.
— Так и сделаю!
Через неделю Василий принёс блокнот со множеством записей о сравнениях
зарплат заготовщиков. И стали они с Иваном считать…
Исходные данные
Первая строка содержит целые числа n и m — количество сотрудников
в фирме и количество записей в блокноте соответственно
(1 ≤ n, m ≤ 50000).
Каждая из следующих m строк содержит по три целых числа: i, j и d,
означающих, что зарплата i-го сотрудника больше чем зарплата j-го
сотрудника на d рублей
(0 ≤ i, j ≤ n−1; |d| ≤ 20000).
Все сотрудники пронумерованы от 0 до n−1, начиная с Василия.
Известно, что размер его зарплаты равен нулю, а никто из остальных не
получает больше 109 рублей.
Результат
Если можно найти такие зарплаты, что их размеры лежат в нужном диапазоне и
удовлетворяют всем сравнениям из блокнота, то в первой строке выведите
«Possible» и далее по одному в строке выведите n целых чисел —
найденные размеры зарплат в рублях в порядке возрастания номеров сотрудников.
Если вариантов ответа может быть несколько, выведите любой.
Если ответа нет, в единственной строке выведите
«Impossible after i statements», где число i равно номеру первой
записи в блокноте, такой, что с учётом только
предыдущих записей ответ найти можно, но вместе с текущей — уже нет.
Нумерация записей идёт с единицы в порядке их следования в блокноте.
Примеры
исходные данные | результат |
---|
5 6
3 4 1200
4 1 -5500
2 3 4300
3 0 8200
0 4 -7000
2 1 0
| Possible
0
12500
12500
8200
7000
|
3 5
1 2 5
0 2 0
1 0 -5
1 2 5
2 2 0
| Impossible after 3 statements
|
3 2
1 0 871
1 2 903
| Impossible after 2 statements
|
Автор задачи: Дмитрий Иванков
Источник задачи: XIII чемпионат Урала по спортивному программированию, 4 апреля 2009 г.