시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 36 | 34 | 30 | 93.750% |
世の中には様々なプログラミングコンテストがある.例えば,情報オリンピック,ACM-ICPC,ICFP の 様に世界中の相手と競い合う物や, Supercomputing Contest,パソコン甲子園,EPOCH @まつやまの国内 大会などなど,枚挙にいとまがない.
そのようなコンテストに参加していると自分でコンテストを開催したいと考える人もあらわれる.あな たの友人もそんな一人である.友人はコンテストの問題準備に忙しく,コンテストのログから参加者の得点 を計算するプログラムの作成をあなたに依頼してきた.是非とも友人のコンテストが成功するように,間 違いのない得点計算プログラムを作ってあげて欲しい.
コンテストの参加者は N 人で,問題が M 問で,競技時間が T 秒である.参加者には 1 から N までの番 号が割り振られている.問題にも 1 から M までの番号が振られている.
このコンテストでは,各参加者は問題毎に,問題文を閲覧し,問題を解き,解答のソースコードを提出 する.競技は時刻 0 からはじまり,時刻 T で終了する.参加者が問題を閲覧すると,時刻と参加者番号と 問題番号がログに 1 件の情報として記録される.参加者が解答ソースコードを提出すると,時刻と参加者 番号と問題番号と解答ソースコードの正誤がログに 1 件の情報として記録される.
各参加者はコンテスト開始から 1 秒毎に「ある問題を閲覧する」か「ある問題のソースコードを提出す る」のいずれかを 1 回行うことが出来る.閲覧前にその問題のソースコードを提出する事や,正解後に再 度ソースコードを提出する事は出来ない.
参加者 j が問題 i を,時刻 Sij に閲覧し,wij 回の不正解のソースコードを提出後,時刻 Eij に正解のソー スコードを提出したときの得点は,
(pi − (Eij − Sij) − 120wij) と X のうち大きい方
である.ただし,pi は問題 i の配点,X は問題番号に依存しない正解した時の最低得点である.
競技終了までに,正解しなかった問題の得点は 0 点である.
各参加者の得点は,その参加者の問題毎の得点の合計である.
N, M, T, X, ログに含まれる情報の件数,各問題の配点,および,ログの内容が与えられたときに各参加 者の得点を計算するプログラムを作成せよ.
標準入力から以下の入力を読み込め.
標準出力に以下のデータを出力せよ.
1 3 1200 30 8 50 1000 800 0 1 1 open 100 1 2 open 400 1 1 correct 500 1 2 incorrect 600 1 2 correct 700 1 3 open 800 1 3 incorrect 900 1 3 incorrect
410
1 番の参加者は,1 問目で 30 点,2 問目で 380 点,3 問目で 0 点を獲得する.2 問目の得点は
1000[問題 2 の配点] − ( 600[正解時刻] − 100[閲覧時刻] ) − 120 × 1[不正解,1 回]
3 2 1000 10 10 878 712 0 2 1 open 0 1 1 open 0 3 1 open 100 3 1 correct 100 2 1 correct 100 1 2 open 200 2 2 open 200 1 2 incorrect 300 1 2 correct 300 2 2 correct
392 1390 778
参加者が複数の場合,同じ時刻に複数の情報が記録されている場合がある.