Problem description
W fabryce cukierków stoi pewna tajemnicza maszyna. Produkuje ona pyszne cukierki różnych rodzajów. Maszyna posiada szeroki otwór — ujście, którym cukierki wypadają, jak tylko są gotowe, z pozycji o numerach od 1 do N. Nikt właściwie nie wie, jak działa ta maszyna, jednakże przed rozpoczęciem sesji produkcyjnej wypisuje ona listę, przeznaczoną dla właściciela fabryki, opisującą kiedy i na której pozycji w ujściu wypada każdy z cukierków. Dzięki temu właściciel fabryki może wprowadzić automatyczne wagony, które jeżdżą pod ujściem, łapiąc spadające cukierki. Rzecz jasna, żaden z cukierków nie może spaść na podłogę, gdyż wówczas uległby zniszczeniu. Jednakże, ponieważ ruchome wagony są drogie, właściciel chciałby użyć ich jak najmniej. Wagony poruszają się z prędkością jednej jednostki na sekundę. Przed rozpoczęciem produkcji każdy z wagonów może być ustawiony na pozycji, w której złapie swój pierwszy cukierek.
Napisz program, który: wczyta z wejścia liczbę cukierków oraz pozycje i czas ich spadania, obliczy minimalną liczbę wagonów niezbędnych do złapania wszystkich cukierków, wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, określająca liczbę cukierków. W kolejnych N wierszach znajdują się opisy kolejnych cukierków. Opis każdego cukierka składa się z dwóch liczb całkowitych si oraz ti, oddzielonych pojedynczym odstępem i określających kolejno: pozycję w ujściu oraz moment pojawienia się cukierka.
Wyjście
Twój program powinien wypisać na standardowe wyjście dokładnie jedną liczbę całkowitą — minimalną liczbę wagonów, które są potrzebne do złapania wszystkich cukierków.
Ograniczenia
1 ≤ N ≤ 100 000, 0 ≤ si, ti ≤ 109.
W testach wartych łącznie 60% maksymalnej punktacji: N ≤ 8 000.
Przykład
Input | Output | |
|
|