Zona de joacă a celor doi pokemoni, Fire și Water, poate fi reprezentată ca o hartă bidimensională pe care sunt marcate punctele de coordonate , unde și . Dintre aceste puncte marcate pe hartă, puncte sunt puncte speciale unde pokemonii se pot ascunde (hidden-points).
Inițial pokemonul Fire se află în punctul de coordonate și dorește să ajungă în punctul de coordonate . Acesta se poate deplasa la un moment dat din punctul de coordonate în unul dintre punctele vecine sau . Pokemonul Water se află inițial în punctul de coordonate și dorește să ajungă în punctul de coordonate . Acesta se poate deplasa la un moment dat din punctul de coordonate în unul dintre punctele vecine sau .
Ca în orice joc, pokemonii au stabilit reguli, după cum urmează:
- Pokemonul Fire, începe jocul și își alege primul traseul pe care îl parcurge.
- Pokemonul Water, își alege traseul pe care îl parcurge, după ce Fire parcurge traseul său.
- Fiecare pokemon parcurge un traseu care vizitează un număr maxim de puncte speciale dintre cele disponibile.
- Dacă sunt mai multe trasee cu număr maxim de puncte speciale, va fi ales traseul minim lexicografic.
- Un punct special odată vizitat își va pierde proprietatea de punct special
Cerință
Date fiind și lista punctelor speciale, scrieți un program care să determine numărul de puncte speciale rămase pe hartă la finalul jocului.
Date de intrare
Fişierul de intrare pokemoni.in
conţine pe prima linie numerele naturale și cu semnificația din enunț. Pe următoarele linii se află punctele speciale, câte un punct pe o linie; un punct special este specificat prin coordonatele sale . Numerele aflate pe aceeași linie a fișierului de intrare sunt separate prin câte un spațiu.
Date de ieșire
Fişierul de ieşire pokemoni.out
va conţine o singură linie pe care va fi scris un număr natural ce reprezintă numărul de puncte speciale rămase pe hartă la finalul jocului.
Restricții și precizări
- Considerăm că un punct este mai mic decât un punct dacă sau și .
- Un traseu este mai mic din punct de vedere lexicografic decât un alt traseu dacă există , astfel încât pentru orice și .
# | Punctaj | Restricții |
---|---|---|
1 | 30 | |
2 | 20 | |
3 | 20 | |
4 | 15 | |
5 | 15 |
Exemplu
pokemoni.in
6 8 12
5 5
1 4
3 6
4 4
6 7
4 7
0 7
1 2
5 1
6 6
2 1
3 2
pokemoni.out
2
Explicație
Cele două posibile trasee alese de pokemoni sunt marcate în imaginea alăturată.
Numărul maxim de puncte speciale ce pot vizitate de pokemonul Fire este .
Există mai multe trasee pentru a vizita cele puncte speciale:
- – – – – −
- – – – – −
Dintre aceste trasee el a ales primul traseu, acesta fiind minim lexicografic.
Cele puncte speciale vizitate de pokemonul Fire își pierd calitatea de punct special.
Din punctele speciale rămase pokemonul Water poate vizita maximum .
Rămân la final pe hartă puncte speciale.