結果
| 問題 |
No.1006 Share an Integer
|
| コンテスト | |
| ユーザー |
995himada
|
| 提出日時 | 2020-03-07 11:44:48 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 223 ms / 2,000 ms |
| コード長 | 636 bytes |
| コンパイル時間 | 109 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 12,288 KB |
| 最終ジャッジ日時 | 2024-10-14 12:07:23 |
| 合計ジャッジ時間 | 3,921 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
コンパイルメッセージ
Syntax OK
ソースコード
include Math
INF = 10 ** 12
def div_size(n)
res = 0
i = 1
while i * i <= n
if n % i == 0
if n / i != i
res += 2
else
res += 1
end
end
i += 1
end
return res
end
X = gets.to_i
a = X / 2
b = (X + 1) / 2
pre = INF
ans = []
# binding.pry
while a > 0 && b <= (X + 1) / 2 + sqrt(X).ceil
avalue = a - div_size(a)
bvalue = b - div_size(b)
dist = (avalue - bvalue).abs
if pre > dist
(ans = []) << [a, b] << [b, a]
pre = dist
elsif pre == dist
ans << [a, b] << [b, a]
end
a -= 1
b += 1
end
ans.uniq.sort_by!{|x, y|x}.each do |an|
puts "#{an[0]} #{an[1]}"
end
995himada