[COCI1920 - Contest 02] Bài 1: ACM

Xem PDF

Nộp bài

Điểm: 100 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 512M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Cuộc thi lập trình cổ xưa đang đến gần và được tổ chức bởi chính ACM (Trung tâm Hàng không Metković). Chính xác có ~N~ đội sẽ thi đấu để giành giải thưởng lớn và trong số đó có một bộ ba vàng Croatia: Paula, Marin và Josip. Hình thức cuộc thi là tiêu chuẩn, trong khi phi công thực hiện các động tác nhào lộn, phi công phụ đọc các đề bài và cố gắng truyền giải pháp cho lập trình viên chính, người được dán chặt vào bên ngoài máy bay.

Cuộc thi bao gồm ~M~ nhiệm vụ khác nhau và các đội được sắp xếp (giảm dần) theo số nhiệm vụ đã giải quyết. Các đội có số nhiệm vụ đã giải quyết bằng nhau sẽ được sắp xếp (tăng dần) theo thời gian phạt. Thời gian phạt của một đội cụ thể là tổng thời gian phạt mà họ đạt được trên mỗi nhiệm vụ đã giải quyết đúng. Thời gian phạt của một nhiệm vụ được giải quyết đúng bằng thời gian mà đội đó giải quyết nhiệm vụ (từ đầu cuộc thi) cộng thêm ~20~ phút cho mỗi lần nộp sai giải pháp cho nhiệm vụ đó. Không đội nào sẽ cố gắng nộp giải pháp cho một vấn đề mà họ đã giải quyết và số lần nộp tối đa cho một nhiệm vụ nhất định là ~9~ cho mỗi đội. Nếu một số đội có số nhiệm vụ đã giải quyết bằng nhau và thời gian phạt bằng nhau, họ sẽ được sắp xếp theo thứ tự bảng chữ cái trong bảng xếp hạng cuối cùng.

Cuộc thi kéo dài năm giờ. Trong bốn giờ đầu tiên, bảng xếp hạng có sẵn cho tất cả các đội và chứa thông tin về trạng thái của mỗi nhiệm vụ cho từng đội (số lần nộp, đã giải quyết hay chưa và khi nào). Trong bốn giờ đó, thứ tự của các đội sẽ được cập nhật tự động sau mỗi lần nộp. Tuy nhiên, trong giờ cuối cùng, bảng xếp hạng bị đóng băng, tức là thứ tự của các đội không được cập nhật sau khi một lần nộp mới được đánh giá. Trong thời gian đó, mỗi đội biết kết quả của các lần nộp của riêng mình, nhưng họ không biết kết quả của các lần nộp của các đội khác. Họ chỉ biết nhiệm vụ nào đã được nộp bởi các đội khác, số lần đã được nộp và khi nào lần nộp cuối cùng cho mỗi nhiệm vụ được thực hiện.

Cuộc thi đã kết thúc và bảng xếp hạng sẽ sớm được mở lại. Các anh hùng của chúng ta, đội có tên ~NijeZivotJedanACM~ cần sự giúp đỡ của bạn. Họ muốn biết vị trí tồi tệ nhất mà họ có thể đứng trên bảng xếp hạng sau khi bảng xếp hạng được mở lại. Hãy giúp họ!

Input

  • Dòng đầu tiên chứa các số nguyên ~N~ ~(1 \leq N \leq 1000)~ và ~M~ ~(1 \leq M \leq 15)~ từ mô tả nhiệm vụ.
  • ~N~ dòng tiếp theo đại diện cho bảng xếp hạng bị đóng băng. Mỗi dòng bắt đầu bằng tên đội (chuỗi bao gồm các chữ cái tiếng Anh viết thường và viết hoa, dài tối đa ~20~ ký tự, tên của tất cả các đội sẽ khác nhau) được ngăn cách bởi một dấu cách từ ~M~ chuỗi (cũng ngăn cách bởi dấu cách) chứa thông tin về trạng thái của mỗi nhiệm vụ cho đội đó.

Các chuỗi đó có dạng ~SX/V~, trong đó:

  • ~S~ đại diện cho trạng thái của nhiệm vụ, ~+~ nghĩa là nhiệm vụ đã được giải quyết đúng, ~-~ nghĩa là đã giải quyết không đúng và ~?~ nghĩa là lần nộp cuối cùng được gửi khi bảng xếp hạng đã bị đóng băng.
  • ~X~ đại diện cho số lần nộp mà đội đó đã gửi cho nhiệm vụ cụ thể này. Nó bị bỏ qua nếu không có lần nộp nào được thực hiện cho nhiệm vụ đó.
  • ~V~ đại diện cho thời gian khi lần nộp cuối cùng được gửi bởi đội đó cho nhiệm vụ cụ thể này. Nó được đưa ra theo định dạng ~HH:MM:SS~ (với số không dẫn đầu) và ít hơn ~5~ giờ. Toàn bộ phần ~/V~ bị bỏ qua nếu nhiệm vụ không được giải quyết đúng (trạng thái ~-~).
  • Dòng cuối cùng chứa bảng xếp hạng chưa bị đóng băng của các anh hùng của chúng ta, đội có tên ~NijeZivotJedanACM~.

Output

Trong dòng đầu tiên và duy nhất, bạn nên xuất vị trí tồi tệ nhất mà các anh hùng của chúng ta có thể đứng trên bảng xếp hạng sau khi bảng xếp hạng được mở lại.

Chú ý

Trong các trường hợp kiểm tra có tổng cộng ~20~ điểm, đầu vào sẽ không chứa ký tự ~?~.

Sample Input 1

2 1
NijeZivotJedanACM -
ZivotJESTJedanACM -
NijeZivotJedanACM -

Sample Output 1

1

Sample Input 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 -

Sample Output 2

2

Sample Input 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

Sample Output 3

3

Giải thích

  • Giải thích ví dụ đầu tiên: Không có gì thay đổi sau khi bảng xếp hạng được mở lại. Do đó, các anh hùng của chúng ta sẽ vẫn đứng ở vị trí đầu tiên!

  • Giải thích ví dụ thứ hai: Trong trường hợp tồi tệ nhất, các anh hùng của chúng ta sẽ chỉ thua đội StoJeZivot, do đó kết thúc ở vị trí thứ hai.

  • Giải thích ví dụ thứ ba: Trong trường hợp tồi tệ nhất, các anh hùng của chúng ta sẽ thua các đội U najgorem će slučaju naš trojac NisamSadaNistaDonio và JeLiMojKockaSeUmio, do đó kết thúc ở vị trí thứ ba.


Bình luận đầu tiên

Bình luận

Không có bình luận nào.