РСОП XXXII 2020
25
B.
ОТРЕЗИ
143
Условие
B. ОТРЕЗИ
---
На метална лента са отбелязани N позиции, номерирани последователно с числата от 1 до N, от ляво надясно. Известни са разстоянията между M от позициите. Напишете програма, която да намери разстоянията между всеки две съседни позиции или да установи че това е невъзможно (т.е. данните са недостатъчно или са противоречиви).
Вход: На първия ред на стандартния вход ще бъде зададен броят на тестовите примери. Всеки пример започва с ред, на който са зададени броят N на позициите и броят M на двойките позиции, разстоянията между които са известни. Следват M реда с по три числа – първите две са номерата B и E на две позиции, а третото – разстоянието R между тези позиции.
Изход: Ако данните в някой тест позволяват да се намерят всички разстояния, тогава програмата трябва да изведе на първия ред на стандартния изход за този тест числото 1, а на втория (N – 1) дробни числа – разстоянията между всяка двойка съседни позиции, отляво надясно, разделени с точно един интервал. След последното разстояние не трябва да има интервал. Разстоянията трябва да се извeдат с точно три знака след десетичната точка. Ако данните в тестовия пример са недостатъчни или противоречиви, тогава програмата трябва да изведе за този тест само ред с числото 2.
Ограничения: 2 ≤ N ≤ 200, 0 ≤ M ≤ 5000, 1 ≤ B ≤ E ≤ N, 0 ≤ R < 2^15. Всички разстояния са дробни неотрицателни числа с не повече от 3 знака след десетичната точка.
Примерен вход:
2
3 2
1 2 1.250
3 1 3
3 2
1 2 1.000
1 3 0.005
Примерен изход:
1
1.250 1.750
2