Time limit: 0.12s
Memory limit: 64MB
Input: linii.in
Output: linii.out
Pentru a nu mai plictisi concurenţii cu enunţuri prea lungi şi complicate, comisia lotului vă dă următoarea problemă. Se dau puncte în plan, aflate la coordonate întregi. Se acoperă punctele cu un număr minim de linii frânte, fiecare linie satisfăcând următoarele cerinţe:
- o linie frântă trebuie să pornească dintr-un punct având coordonate întregi
- la fiecare pas linia trebuie prelungită din punctul curent într-unul din cele puncte: , , .
Cerință
Sa se determine numărul minim de linii frânte care acoperă toate punctele date.
Date de intrare
Fişierul de intrare linii.in
conţine pe prima linie un număr natural , reprezentând numărul de puncte, iar următoarele linii se află câte două numere întregi , , separate printr-un spaţiu, reprezentând coordonatele unui punct.
Date de ieșire
Fişierul de ieşire linii.out
va conţine pe prima linie un număr natural reprezentând numărul minim de linii frânte care acoperă toate cele puncte.
Restricții și precizări
- Coordonatele celor puncte sunt numere întregi din intervalul
- Punctele nu sunt neapărat distincte; dacă sunt mai multe puncte care coincid, atunci ele se consideră acoperite simultan de aceeaşi linie frântă.
Exemplu
linii.in
5
1 1
6 4
3 3
3 5
5 2
linii.out
2