РСОП 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