結果
| 問題 |
No.2266 Fractions (hard)
|
| ユーザー |
|
| 提出日時 | 2023-04-14 23:01:50 |
| 言語 | Ruby (3.4.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 822 bytes |
| コンパイル時間 | 87 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 20,128 KB |
| 最終ジャッジ日時 | 2024-10-10 14:04:08 |
| 合計ジャッジ時間 | 14,886 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | TLE * 1 -- * 2 |
| other | -- * 35 |
コンパイルメッセージ
Main.rb:27: warning: assigned but unused variable - primes Syntax OK
ソースコード
require 'prime'
def floor_sum(n, m, a, b)
ans = 0
if a >= m
ans += (n - 1) * n * (a / m) / 2
a %= m
end
if b >= m
ans += n * (b / m)
b %= m
end
y_max = (a * n + b) / m
x_max = y_max * m - b
if y_max == 0
return ans
end
ans += (n - (x_max + a - 1) / a) * y_max
ans += floor_sum(y_max, a, m, (a - x_max % a) % a)
end
n, k = gets.chomp.split.map(&:to_i)
fractions = []
(1..n).each do |i|
primes = i.prime_division.map(&:first)
divisors = []
(1..i).each do |j|
if i % j == 0
divisors.push(j)
end
end
divisors.each do |d|
if d.gcd(i) == 1
fractions.push(Rational(d, i))
end
end
end
fractions = fractions.sort.uniq
if k > fractions.length
puts "-1"
else
puts fractions[k - 1].numerator.to_s + "/" + fractions[k - 1].denominator.to_s
end