Polish version    English version  
  Historia OI -> VIII OI 2000/2001 -> Zadania


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
 Historia OI
XVII OI 2009/2010
XVI OI 2008/2009
XV OI 2007/2008
XIV OI 2006/2007
XIII OI 2005/2006
XII OI 2004/2005
XI OI 2003/2004
X OI 2002/2003
IX OI 2001/2002
VIII OI 2000/2001
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
Zadania
Regulamin
Zasady organizacji
Wskazówki
Terminarz
Statystyki
VII OI 1999/2000
VI OI 1998/1999
V OI 1997/1998
IV OI 1996/1997
III OI 1995/1996
II OI 1994/1995
I OI 1993/1994
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
VIII Olimpiada Informatyczna 2000/2001

Zadanie: PRZ
Autor: Wojciech Guzicki
Przedziały

Zawody I stopnia  
Plik źródłowy: PRZ.??? (np. pas, c, cpp)
Plik wykonywalny: PRZ.exe
Plik wejściowy: PRZ.in
Plik wyjściowy: PRZ.out

Dany jest ciąg n przedziałów domkniętych [ai; bi], gdzie i=1,2,...,n. Suma tych przedziałów może być przedstawiona w postaci sumy parami rozłącznych przedziałów domkniętych. Zadanie polega na znalezieniu przedstawienia tej sumy w postaci sumy minimalnej liczby parami rozłącznych przedziałów domkniętych. Przedziały tworzące to przedstawienie należy zapisać w pliku wyjściowym w rosnącej kolejności. Mówimy, że dwa przedziały rozłączne [a; b] i [c; d] są ustawione w rosnącej kolejności wtedy i tylko wtedy, gdy a <= b < c <= d.

Zadanie

Napisz program, który:

  • wczyta z pliku tekstowego PRZ.IN opis ciągu przedziałów,
  • wyznaczy parami rozłączne przedziały spełniające warunki zadania,
  • zapisze wyznaczone przedziały w rosnącej kolejności do pliku tekstowego PRZ.OUT.

Wejście

W pierwszym wierszu pliku tekstowego PRZ.IN znajduje się jedna liczba całkowita n, spełniająca nierówność 3 <= n <= 50000. Jest to liczba przedziałów. W (i+1)-szym wierszu pliku, 1 <= i <= n, znajduje się opis przedziału [ai; bi] w postaci dwóch liczb całkowitych ai i bi oddzielonych pojedynczym odstępem, będących odpowiednio jego początkiem i końcem, 1 <= ai <= bi <= 1000000.

Wyjście

W kolejnych wierszach pliku tekstowego PRZ.OUT należy zapisać opisy znalezionych parami rozłącznych przedziałów. W każdym wierszu ma być zapisany opis jednego przedziału w postaci dwóch liczb całkowitych oddzielonych pojedynczym odstępem, będących odpowiednio początkiem i końcem tego przedziału. Przedziały w pliku wyjściowym powinny być zapisane w rosnącej kolejności.

Przykład

Dla pliku wejściowego PRZ.IN:

5
5 6
1 4
10 10
6 9
8 10

poprawną odpowiedzią jest plik wyjściowy PRZ.OUT:

1 4
5 10



Wersja do druku