[BOJ 6024] Covering the Corral

View as PDF

Submit solution

Points: 4
Time limit: 1.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

The cows are so modest they want Farmer John to install covers around the circular corral where they occasionally gather. The corral has circumference C (1 <= C <= 1,000,000,000), and FJ can choose from a set of M (1 <= M <= 100,000) covers that have fixed starting points and sizes. At least one set of covers can surround the entire corral.</p>

Cover i can be installed at integer location x_i (distance from starting point around corral) (0 <= x_i < C) and has integer length l_i (1 <= l_i <= C).

FJ wants to minimize the number of segments he must install. What is the minimum number of segments required to cover the entire circumference of the corral?

Consider a corral of circumference 5, shown below as a pair of connected line segments where both '0's are the same point on the corral (as are both 1's, 2's, and 3's).

Three potential covering segments are available for installation:

           Start   Length
      i     x_i     l_i
      1      0       1 
      2      1       2 
      3      3       3 

        0   1   2   3   4   0   1   2   3  ... 
corral: +---+---+---+---+--:+---+---+---+- ...
        11111               1111
            22222222            22222222
                    333333333333
            |..................|

As shown, installing segments 2 and 3 cover an extent of (at least) five units around the circumference. FJ has no trouble with the overlap, so don't worry about that.

입력 형식

  • Line 1: Two space-separated integers: C and M
  • Lines 2..M+1: Line i+1 contains two space-separated integers: x_i and l_i
  • </ul>

     

    출력 형식

    • Line 1: A single integer that is the minimum number of segments required to cover all segments of the circumference of the corral
    • </ul>

       

      예제 입력

5 3
0 1
1 2
3 3

예제 출력

2

Comments

There are no comments at the moment.