아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Montażysta

시간 제한4초메모리 제한1024 MB

요약
각 영상의 편집 소요 시간과 마감일이 주어질 때, 제때 끝낼 수 있는 영상의 최대 개수와 그 편집 일정을 구한다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 힙
정답자
아직 제출이 없습니다

문제

Bajtazar podjął się zmontowania n filmów z omówieniami zadań z Olimpiady Informatycznej. Wiadomo, że zmontowanie i-tego filmu zajmie ti kolejnych dni oraz że należy go opublikować do końca di-tego dnia. Bajtazar ma dostęp do światłowodu, więc zmontowany film właściwie natychmiast jest publikowany na serwerze Olimpiady. Jednak montaż jest bardzo wymagający sprzętowo, a Bajtazar ma tylko jeden komputer, więc jednocześnie montowany może być tylko jeden film.

Filmów jest sporo i Bajtazar martwi się, że nie dotrzyma wszystkich terminów. Pomóż mu i wyznacz, ile maksymalnie filmów Bajtazar jest w stanie opublikować na czas, zakładając, że pierwszy montaż może najwcześniej ruszyć dnia numer 1. Aby Bajtazar czuł się pewniej, zaplanuj również, jak ten wynik osiągnąć.

입력

W pierwszym wierszu wejścia znajduje się liczba całkowita n (1 ≤ n ≤ 500 000) oznaczająca liczbę filmów do zmontowania.

W kolejnych n wierszach znajdują się opisy filmów; i-ty z tych wierszy zawiera dwie liczby całkowite ti i di (1 ≤ ti, di ≤ 109) oznaczające czas montowania i termin publikacji i-tego filmu.

출력

Twój program powinien wypisać w pierwszym wierszu wyjścia jedną liczbę całkowitą m oznaczającą maksymalną liczbę filmów, które Bajtazar może zmontować w terminie.

W kolejnych m wierszach należy zapisać plan pracy; w i-tym z tych wierszy należy wypisać dwie liczby całkowite fi i ki (1 ≤ fi ≤ n, 1 ≤ ki) oznaczające, że film o numerze fi należy rozpocząć montować dnia ki. Jeśli istnieje więcej niż jedno rozwiązanie o maksymalnym m, Twój program może wypisać dowolne z nich.

예제1

  1. 예제 1

    입력
    5
    4 5
    2 4
    5 3
    1 9
    3 10
    
    예상 출력
    3
    2 3
    4 7
    5 8