結果
問題 |
No.21 平均の差
|
ユーザー |
![]() |
提出日時 | 2025-09-08 11:08:51 |
言語 | Crystal (1.14.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,059 bytes |
コンパイル時間 | 14,912 ms |
コンパイル使用メモリ | 310,492 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-09-08 11:09:07 |
合計ジャッジ時間 | 11,903 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 2 WA * 8 |
ソースコード
n = gets.not_nil!.to_i k = gets.not_nil!.to_i num = Array(Int32).new(n + 1, 0) (1..n).each do |i| num[i] = gets.not_nil!.to_i end sum = Array(Int32).new(10, 0) cnt = Array(Int32).new(10, 0) ans = 0 def solve(idx, sz, n, k, num, sum, cnt, ans) if idx == n + 1 if sz == k now_min = Int32::MAX now_max = 0 (1..k).each do |i| now = sum[i] (1..9).each do |j| if j != cnt[i] now *= j end end now_min = Math.min(now_min, now) now_max = Math.max(now_max, now) end p = 1 (1..9).each { |i| p *= i } diff = now_max - now_min if diff % p == 0 ans = Math.max(ans, diff // p) else ans = Math.max(ans, diff // p + 1) end end return end (1..Math.min(sz + 1, k)).each do |i| sum[i] += num[idx] cnt[i] += 1 solve(idx + 1, Math.max(sz, i), n, k, num, sum, cnt, ans) cnt[i] -= 1 sum[i] -= num[idx] end end solve(1, 0, n, k, num, sum, cnt, ans) puts ans