結果
| 問題 | No.3681 心の沸騰石 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-05 14:44:43 |
| 言語 | Ruby (4.0.6) |
| 結果 |
AC
|
| 実行時間 | 51 ms / 2,000 ms |
| + 938µs | |
| コード長 | 1,616 bytes |
| 記録 | |
| コンパイル時間 | 516 ms |
| コンパイル使用メモリ | 8,832 KB |
| 実行使用メモリ | 14,720 KB |
| 最終ジャッジ日時 | 2026-09-05 14:45:08 |
| 合計ジャッジ時間 | 2,766 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge6_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 13 |
コンパイルメッセージ
Main.rb:5: warning: 'frozen_string_literal' is ignored after any tokens Main.rb:30: warning: 'frozen_string_literal' is ignored after any tokens Syntax OK
ソースコード
# frozen_string_literal: true
# This file is expanded by nanacl.
main = -> do # =================================================================
# frozen_string_literal: true
# require "nanacl/bsearch_right" # (expanded: L29)
in_r, in_p, in_q = gets.chomp.split.map(&:to_i)
in_a, in_b, in_c, in_d = gets.chomp.split.map(&:to_i)
ans =
(0..(10**10)).bsearch_right do |n|
change_budget = in_r - in_p * n
next false if change_budget < 0
missing_a = n - in_a
missing_b = n - in_b
missing_c = n - in_c
unuseds = [-missing_a, -missing_b, -missing_c, in_d].sum { |c| [c, 0].max }
missings = [missing_a, missing_b, missing_c].sum { |c| [c, 0].max }
missings <= change_budget / in_q && unuseds >= missings
end
puts ans
end # --------------------------------------------------------------------------
# === dependencies -------------------------------------------------------------
# == nanacl/bsearch_right from main --------------------------------------------
# frozen_string_literal: true
class Array
def bsearch_right(&)
index = bsearch_index_right(&)
index && self[index]
end
def bsearch_index_right(&block)
right = bsearch_index { |elem| !block.call(elem) }
if right.nil?
size - 1
elsif right == 0
nil
else
right - 1
end
end
end
class Range
def bsearch_right(&block)
right = bsearch { |elem| !block.call(elem) }
if right.nil?
last
elsif right == first
nil
else
right - 1
end
end
end
# ==============================================================================
main.call