IOI 2009 - POI

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 2.0s Bộ nhớ: 64M Input: bàn phím Output: màn hình

Kỳ thi Olympic Tin học Plovdiv (POI) được tổ chức tại địa phương theo những quy tắc khác thường sau. Có \(N\) thí sinh và \(T\) bài toán. Mỗi bài chỉ được chấm bằng một test, vì vậy với mỗi bài và mỗi thí sinh chỉ có hai khả năng: thí sinh giải được bài đó hoặc không giải được. Không có điểm thành phần cho bất kỳ bài nào.

Số điểm của mỗi bài được xác định sau khi kỳ thi kết thúc và bằng số thí sinh không giải được bài đó. Điểm của mỗi thí sinh bằng tổng số điểm của những bài mà thí sinh ấy giải được.

Philip đã tham gia kỳ thi, nhưng các quy tắc tính điểm phức tạp khiến cậu bối rối. Giờ đây, cậu đang nhìn vào kết quả mà không xác định được vị trí của mình trên bảng xếp hạng cuối cùng. Hãy giúp Philip bằng cách viết chương trình tính điểm và thứ hạng của cậu.

Trước kỳ thi, các thí sinh được gán các số hiệu đôi một khác nhau từ \(1\) đến \(N\). Số hiệu của Philip là \(P\). Bảng xếp hạng cuối cùng liệt kê các thí sinh theo thứ tự điểm giảm dần. Trong số các thí sinh bằng điểm, người giải được nhiều bài hơn được xếp trước người giải được ít bài hơn. Nếu vẫn bằng nhau theo tiêu chí này, các thí sinh có cùng kết quả được xếp theo thứ tự số hiệu tăng dần.

Nhiệm vụ

Cho biết mỗi thí sinh giải được những bài nào, hãy viết chương trình xác định điểm của Philip và thứ hạng của cậu trên bảng xếp hạng cuối cùng.

Dữ liệu vào

Chương trình đọc từ đầu vào chuẩn:

  • Dòng đầu chứa ba số nguyên \(N\), \(T\)\(P\), cách nhau bởi một dấu cách.
  • \(N\) dòng tiếp theo mô tả những bài mà từng thí sinh giải được. Dòng thứ \(k\) trong số này mô tả thí sinh có số hiệu \(k\) và chứa \(T\) số nguyên cách nhau bởi các dấu cách. Số đầu tiên cho biết thí sinh \(k\) có giải được bài thứ nhất hay không, số thứ hai cho biết điều tương tự với bài thứ hai, và cứ như vậy. Mỗi số chỉ có thể là \(0\) hoặc \(1\): \(1\) nghĩa là thí sinh \(k\) giải được bài tương ứng, còn \(0\) nghĩa là không giải được.

Dữ liệu ra

Ghi ra đầu ra chuẩn một dòng chứa hai số nguyên cách nhau bởi một dấu cách. Số thứ nhất là điểm mà Philip đạt được trong kỳ thi POI. Số thứ hai là thứ hạng của Philip trên bảng xếp hạng cuối cùng. Thứ hạng là một số nguyên từ \(1\) đến \(N\), trong đó \(1\) chỉ thí sinh đứng đầu bảng, tức một thí sinh có điểm cao nhất, còn \(N\) chỉ thí sinh đứng cuối bảng, tức một thí sinh có điểm thấp nhất.

Ràng buộc

  • \(1 \le N \le 2000\): số thí sinh.
  • \(1 \le T \le 2000\): số bài toán.
  • \(1 \le P \le N\): số hiệu của Philip.

Phân nhóm

Bài có tổng cộng \(100\) điểm. Trong một số test có tổng cộng \(35\) điểm, không có thí sinh nào khác có cùng điểm với Philip.

Ví dụ

Ví dụ 1

Input
5 3 2
0 0 1
1 1 0
1 0 0
1 1 0
1 1 0
Output
3 2
Note

Chỉ có một thí sinh không giải được bài thứ nhất, nên bài này có giá trị \(1\) điểm. Có hai thí sinh không giải được bài thứ hai, nên bài này có giá trị \(2\) điểm. Có bốn thí sinh không giải được bài thứ ba, nên bài này có giá trị \(4\) điểm. Vì vậy, thí sinh thứ nhất đạt \(4\) điểm; thí sinh thứ hai (Philip), thứ tư và thứ năm đều đạt \(3\) điểm; còn thí sinh thứ ba đạt \(1\) điểm. Các thí sinh \(2\), \(4\)\(5\) vẫn bằng nhau theo tiêu chí phá hòa thứ nhất là số bài giải được. Theo tiêu chí phá hòa thứ hai là số hiệu nhỏ hơn, Philip được xếp trước hai người còn lại. Do đó, Philip đứng thứ \(2\) trên bảng xếp hạng cuối cùng, chỉ sau thí sinh có số hiệu \(1\).

Nguồn

IOI 2009.

Tệp

Bình luận

Mới nhất
Tải bình luận...

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

Kỳ thi: