Letoljubac

시간 제한1초메모리 제한2048 MB

요약
자그레브와 파리 사이를 오가는 n개의 항공편이 방향, 출발 시각, 비행 시간, 가격과 함께 주어질 때, 자그레브에서 출발해 최대로 탑승할 수 있는 항공편 수와 그 최대 횟수 중 최소 비용을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

Nije neka tajna da Morana voli putovati. Ipak, mala (ne iznenađujuća) tajna je da je Morana veliki letoljubac. Letoljupcima zovemo ljude koji vole letjeti avionom. Ah ti oblaci, ah to nebo! Ima nešto u tome.

Za svoj idući rođendan, Morana je odlučila udovoljiti letoljupcu u sebi i otići na što više letova moguće između Zagreba i Pariza. Da bi izbjegla komplikacije, letjeti će samo direktnim linijama između ta 22 grada. Ona je već našla listu od n letova koji voze taj dan samo direktno između ta 22 grada, te za svaki let zapisala smjer u kojem ide (ide li iz Pariza prema Zagrebu ili obrnuto), vrijeme polaska (u milisekundama od početka dana), trajanje leta u milisekundama i cijenu leta. (Morana voli biti jako precizna u svojim planovima!)

Kako je ona zauzeta pripremanjem svog rođendanskog tuluma za dan poslije, pita vas za pomoć. Ako Morana kreće iz Zagreba i nije joj bitno u kojem gradu od dva će završiti na kraju, na koliko najviše letova može otići taj dan i koliko će ju to koštati? Ako postoji više opcija, Morana će izabrat najjeftiniju opciju.

Morana će se naizmjenice voziti iz Zagreba prema Parizu, tj. ne može sjesti na let koji ide prema Parizu, ako se trenutno nalazi u Parizu. Također, Morana se ne može iskrcati iz jednog aviona i ukrcati u drugi u isto vrijeme, tj. između letova kojima Morana leti treba biti razmak od bar 11 milisekunde između iskrcavanja i ukrcavanja.

입력

U prvom retku je prirodan broj nn (1≤n≤1051 ≤ n ≤ 10^5), broj letova.

U i-tom od idućih nn redova nalaze se četiri broja: s_is\_i, m_im\_i, d_id\_i, c_ic\_i, redom:

  • s_is\_i (1≤s_i≤21 ≤ s\_i ≤ 2) predstavlja smjer ii-tog leta. Ako je s_i=1s\_i = 1, avion leti iz Zagreba prema Parizu, inače leti iz Pariza prema Zagrebu,
  • m_im\_i (0≤m_i≤86,399,9990 ≤ m\_i ≤ 86\\, 399\\, 999) predstavlja da avion polijeće u m_im\_i-toj milisekundi dana,
  • d_id\_i (1≤d_i≤86,399,9991 ≤ d\_i ≤ 86\\, 399\\, 999) predstavlja trajanje leta u milisekundama,
  • c_ic\_i (1≤c_i≤1071 ≤ c\_i ≤ 10^7) predstavlja cijenu leta.

Svi letovi će biti takvi da polijeću i slijeću u tom danu.

출력

Ispišite koliko se najviše puta Morana može voziti avionom taj dan i koliko će ju to ukupno koštati.

힌트

Pojašnjenje prvog probnog primjera: Ako bi preračunali milisekunde u sate i minute, dobili bismo da će se Morana voziti avionom prema Parizu koji polijeće u 13:00 i traje 180180 min za cijenu 33. Avion će sletiti u 16:00, pa će Morana otići na idući let u 17:30 prema Zagrebu koji traje 170170 min za cijenu 33.

예제3

  1. 예제 1

    입력
    5
    1 36000000 14400000 5
    2 57600000 14400000 2
    1 46800000 14400000 4
    1 46800000 10800000 3
    2 63000000 10200000 3
    
    예상 출력
    2 6
    
  2. 예제 2

    입력
    7
    2 4830 2700 12
    1 7728 330 15
    1 6888 828 5
    2 162 2520 14
    1 2910 1002 10
    1 6906 108 18
    1 402 780 16
    
    예상 출력
    3 37
    
  3. 예제 3

    입력
    7
    2 4908 492 1
    2 6210 630 9
    1 5424 678 20
    1 1770 1452 16
    1 8238 90 5
    2 4128 2778 8
    1 6006 1056 1
    
    예상 출력
    5 51