結果
| 問題 |
No.1708 Quality of Contest
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-10-30 15:35:14 |
| 言語 | Ruby (3.4.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 861 bytes |
| コンパイル時間 | 155 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 55,740 KB |
| 最終ジャッジ日時 | 2024-10-07 13:43:24 |
| 合計ジャッジ時間 | 10,593 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 6 TLE * 1 -- * 16 |
コンパイルメッセージ
Main.rb:14: warning: assigned but unused variable - k Syntax OK
ソースコード
N, M, X = gets.split(" ").map{|s| s.to_i}
A = Array.new(M) {Array.new}
N.times {
a, b = gets.split(" ").map{|s| s.to_i}
A[b-1] << a
}
A.each {|a|
a.sort_by!{|x| -x}
}
k = gets.to_i
c = gets.split(" ").map{|s| s.to_i}
cnt = []
cpos = Array.new(M, 0)
same = []
diff = []
0.upto(M-1) {|j|
diff << [A[j][0], j] if A[j].length > 0
}
diff.sort!.reverse!
c.max.times {
sa, sb = same.length > 0 ? same[0] : [-Float::INFINITY, -1]
da, db = diff.length > 0 ? diff[0] : [-Float::INFINITY, -1]
if sa > da + X then
same.shift
cpos[sb] += 1
if cpos[sb] < A[sb].length then
same << [A[sb][cpos[sb]], sb]
same.sort!.reverse!
end
cnt << sa
else
diff.shift
cpos[db] += 1
if cpos[db] < A[db].length
same << [A[db][cpos[db]], db]
same.sort!.reverse!
end
cnt << da + X
end
}
total = 0
c.each {|i|
total += cnt[0,i].sum
}
puts total