Izvanredan Ishod

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

요약
대회 마지막 한 시간 동안의 제출 결과가 각 팀만 알 수 있는 상황에서, NijeZivotJedanACM 팀이 리더보드가 다시 공개된 후 가질 수 있는 최악의 최종 순위를 구합니다.
난이도

보통10점 중 6점

유형
정렬, 구현, 그리디, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Bliži se drevno (čitaj drveno) programersko natjecanje za djecu i mlade koje organizira nitko drugi doli ACM (Avijatičarski Centar Metković). Na natjecanju će nastupiti čak NN timova uzrasta do šest godina. Među timovima je i zlatni trojac mladih avijatičara Hrvatske: Paula, Marin i Josip (obrnuto abecedno, svaka sličnost sa stvarnim događajima i osobama nije slučajna). Oblik natjecanja je standardan, dok kapetan posade radi piruete, kopilot čita zadatke na ruskom jeziku i Morseovom abecedom diktira kod programeru koji se nalazi izvan zrakoplova, ali je za njega sigurno pričvršćen ljepljivom vrpcom.

Timovi će na natjecanju ukrstiti koplja (preciznije krila) na MM različitih zadataka. Timovi su na rang listi poredani silazno po broju riješenih zadataka.

  • „Čekaj malo! Nisi objasnio ljudima kojim su redom poredani timovi sa istim brojem riješenih zadataka!” – dobacuje Marin kroz prozor svojeg krilatog ljubimca.
  • „U pravu si, Marine.” – odgovorih mu.

Timovi koji imaju isti broj riješenih zadataka poredani su uzlazno po penalty vremenu. Penalty vrijeme za neki tim je suma penalty vremena svih točno riješenih zadataka. Penalty vrijeme točno riješenog zadatka odgovara vremenu zadnjeg poslanog rješenja za taj zadatak kojem se pridodaje 2020 minuta za svako pogrešno poslano rješenje na tom zadatku. Tim neće slati rješenje za zadatak koji su već točno riješili. Najveći dozvoljen broj poslanih rješenja za isti zadatak je 99 po timu. Ako timovi imaju isti broj riješenih zadataka i isto penalty vrijeme, poredani su po imenima abecedno.

Natjecanje traje pet sati. Tijekom prva četiri sata rang lista je vidljiva svim timovima te za svaki tim pokazuje informacije o svakom zadatku (koliko je ukupno slanja bilo, je li riješen i u koje vrijeme je riješen). Tijekom ta četiri sata, poredak na listi se sa svakim slanjem automatski ažurira. Nakon četiri sata, lista se zamrzne, tj. ostane u poretku u kojem je bila. Informacije o točnosti rješenja poslanih tijekom zadnjeg sata svaki tim zna samo za svoja vlastita, ali se za svaki tim i dalje za svaki zadatak na listi ažurira koliko je ukupno rješenja poslano i kada je poslano zadnje.

Natjecanje je završilo, lista će se uskoro odmrznuti, a naš trojac, tj. tim s imenom NijeZivotJedanACM treba vašu pomoć. Zanima ih koja je najniža moguća pozicija na kojoj mogu završiti kada se lista odmrzne. Ali u tih pet sati su se toliko izvrtjeli po modrom nebu da im je već zlo i programčić koji ovo provjerava nisu u stanju napisati sami. Pomozite im!

입력

U prvom su retku prirodni brojevi NN (1≤N≤10001 ≤ N ≤ 1000) i MM (1≤M≤151 ≤ M ≤ 15) iz teksta zadatka.

U sljedećih NN redaka je stanje zamrznute liste na kraju natjecanja. Svaki red započinje imenom tima (riječ sastavljena od malih i velikih slova engleske abecede ne duža od 2020 znakova, imena svih timova bit će različita) koje je razmakom odvojeno od MM riječi koje su međusobno odvojene razmacima, a nose informacije o rješenjima zadataka za taj tim, redom od prvog do zadnjeg zadatka.

Riječi su za svaki zadatak oblika SX/V, gdje je:

  • S stanje poslanih rješenja za taj zadatak (‘+’ označava da je zadatak točno riješen, ‘-’ označava da nije, a ‘?’ označava da je zadnje rješenje poslano nakon zamrzavanja ljestvice).
  • X je ukupan broj rješenja koja je taj tim poslao za taj zadatak te se izostavlja ako je jednak nuli.
  • V je vrijeme u kojem je poslano zadnje rješenje. Vrijeme je u formatu HH:MM:SS (sa vodećim nulama) te je manje od 55 sati. Cijeli /V dio se u riječi izostavlja ako zadatak nije točno riješen.

U posljednjem se retku nalazi odmrznuti redak za naš trojac, tim s imenom NijeZivotJedanACM.

출력

U prvi i jedini redak ispišite najnižu moguću poziciju na kojoj naš trojac može završiti nakon odmrzavanja liste.

힌트

Pojašnjenje prvog probnog primjera: Lista će nakon odmrzavanja biti ista kao i dok je bila zamrznuta, s našim trojcem na prvom mjestu!

Pojašnjenje drugog probnog primjera: U najgorem će slučaju naš trojac izgubiti samo od tima StoJeZivot i završiti na drugom mjestu.

Pojašnjenje trećeg probnog primjera: U najgorem će slučaju naš trojac izgubiti od timova NisamSadaNistaDonio i JeLiMojKockaSeUmio te završiti na trećem mjestu.

예제3

  1. 예제 1

    입력
    2 1
    NijeZivotJedanACM -
    ZivotJESTJedanACM -
    NijeZivotJedanACM -
    
    예상 출력
    1
    
  2. 예제 2

    입력
    3 2
    StoJeZivot ?1/04:00:00 +1/02:04:06
    JeLiZivotJedanACM ?1/04:59:59 -
    NijeZivotJedanACM ?1/04:42:43 -
    NijeZivotJedanACM +1/04:42:43 -
    
    예상 출력
    2
    
  3. 예제 3

    입력
    7 4
    NisamSadaNistaDonio +1/03:59:59 +3/03:42:02 +2/00:14:59 ?1/04:56:12
    JeLiMojKockaSeUmio ?4/04:00:00 -3 +1/00:10:01 +9/03:04:42
    OstaviDobroJe ?4/04:59:59 -1 +2/00:24:15 +8/03:24:45
    DobroJeOstavi +1/01:42:53 - ?9/04:58:23 ?1/04:34:43
    NijeZivotJedanACM ?2/04:50:05 ?4/04:32:12 +2/01:32:45 ?1/04:59:59
    KoSeToSeta ?1/04:23:32 - +9/01:00:00 -9
    SipSipSipSipSipSip - - - ?9/04:00:00
    NijeZivotJedanACM -2 +4/04:32:12 +2/01:32:45 +1/04:59:59
    
    예상 출력
    3