Scalanie przedziałów
Treść zadania
Wczytaj n przedziałów domkniętych $[a_i, b_i]$. Scal wszystkie przedziały, które na siebie nachodzą, i wypisz otrzymane rozłączne przedziały w kolejności rosnącej według początku.
Dane wejściowe
- 1. linia:
n - następnie
nlinii, w każdej dwie liczby całkowitea_i b_i(a_i ≤ b_i)
Dane wyjściowe
Każdy scalony przedział w osobnej linii w postaci a b, posortowane rosnąco według a.
Ograniczenia
1 ≤ n ≤ 1000- $-10^6 \le a_i \le b_i \le 10^6$
Uwagi
- Przedziały na wejściu mogą być podane w dowolnej kolejności — najpierw je posortuj.
- Dwa przedziały (po posortowaniu) nachodzą na siebie, gdy początek następnego jest mniejszy lub równy końcowi bieżącego. Przedziały stykające się końcami, np.
1 3i3 5, scalamy w1 5, natomiast10 22i23 88pozostają osobno.
Przykład
7 23 67 23 53 45 88 77 88 10 22 11 12 42 45
10 22 23 88
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 13
Zadania w tym rozdziale ćwiczą pracę z listami dwuwymiarowymi (macierzami): tworzenie, wczytywanie, przechodzenie po wierszach i kolumnach oraz przekształcanie.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).
Konwencje wspólne:
- Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście.
- Wiersz macierzy na wejściu to jedna linia z liczbami oddzielonymi spacjami — wczytaj całą linię i rozbij ją po spacjach (
input().split()). - W wyjściu macierzy: każdy wiersz w osobnej linii, elementy oddzielone pojedynczą spacją.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono4 1 3 2 6 8 10 9 12
1 6 8 12
Test 2
Nie uruchomiono2 5 7 1 2
1 2 5 7
Test 3
Nie uruchomiono2 1 3 3 5
1 5
Test 4
Nie uruchomiono1 4 4
4 4
Test 5
Nie uruchomiono3 1 10 2 3 4 5
1 10
Test 6
Nie uruchomiono4 -5 -1 0 2 -2 0 6 9
-5 2 6 9