Polish version    English version  
  About Olympic -> Problems


 News
 About Olympic
About contest
Problems
I OI 1993/1994
II OI 1994/1995
III OI 1995/1996
IV OI 1996/1997
V OI 1997/1998
VI OI 1998/1999
VII OI 1999/2000
VIII OI 2000/2001
IX OI 2001/2002
X OI 2002/2003
XI OI 2003/2004
XII OI 2004/2005
XIII OI 2005/2006
XIV OI 2006/2007
XV OI 2007/2008
Problems archive
 History of OI
 OI books
 National team
 Olympic camps
 Photo gallery
 Links
 SIO
 MAIN
VIII Olimpiada Informatyczna 2000/2001

Task: PRZ
Author: Wojciech Guzicki
Intervals

I stage contest  


There is given the series of n closed intervals [aibi], where i=1,2,...,n. The sum of those intervals may be represented as a sum of closed pairwise non-intersecting intervals. The task is to find such representation with the minimal number of intervals. The intervals of this representation should be written in the output file in acceding order. We say that the intervals [a; b] and [c; d] are in ascending order if, and only if a <= b < c <= d.

Task

Write a program which:

  • reads from the text file PRZ.IN the description of the series of intervals, 
  • computes pairwise non-intersecting intervals satisfying the conditions given above,
  • writes the computed intervals in ascending order into the text file PRZ.OUT. 

Input

In the first line of the text file PRZ.IN there is one integer n, 3 <= n <= 50000. This is the number of intervals. In the (i+1)-st line, 1 <= i <= n, there is a description of the interval [ai; bi] in the form of two integers ai and bi separated by a single space, which are respectively the beginning and the end of the interval, 1 <= ai <= bi <= 1000000.

Output

The text file PRZ.IN should contain descriptions of all computed pairwise non-intersecting intervals. In each line should be written a description of one interval. It should be composed of two integers, separated by a single space, the beginning and the end of the interval respectively. The intervals should be written into the output file in ascending order.

Examlpe

For the input file PRZ.IN:

5
5 6
1 4
10 10
6 9
8 10

the correct answer is the output file PRZ.OUT:

1 4
5 10



Print friendly version