結果

問題 No.1006 Share an Integer
ユーザー 小野寺健小野寺健
提出日時 2021-11-06 18:19:08
言語 Ruby
(3.3.0)
結果
AC  
実行時間 1,958 ms / 2,000 ms
コード長 505 bytes
コンパイル時間 54 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 28,160 KB
最終ジャッジ日時 2024-11-07 17:02:27
合計ジャッジ時間 19,423 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 86 ms
12,032 KB
testcase_01 AC 84 ms
12,160 KB
testcase_02 AC 84 ms
12,160 KB
testcase_03 AC 86 ms
12,032 KB
testcase_04 AC 84 ms
12,288 KB
testcase_05 AC 87 ms
12,160 KB
testcase_06 AC 84 ms
12,160 KB
testcase_07 AC 84 ms
12,288 KB
testcase_08 AC 83 ms
12,288 KB
testcase_09 AC 84 ms
12,160 KB
testcase_10 AC 84 ms
12,160 KB
testcase_11 AC 1,081 ms
21,120 KB
testcase_12 AC 1,826 ms
27,264 KB
testcase_13 AC 1,950 ms
28,160 KB
testcase_14 AC 1,942 ms
28,032 KB
testcase_15 AC 1,686 ms
25,856 KB
testcase_16 AC 820 ms
19,072 KB
testcase_17 AC 1,177 ms
21,504 KB
testcase_18 AC 1,693 ms
25,856 KB
testcase_19 AC 1,603 ms
25,344 KB
testcase_20 AC 1,730 ms
26,368 KB
testcase_21 AC 1,958 ms
28,032 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

X = gets.to_i

d = Array.new(X+1, 1)
d[0] = 0
2.upto(X) {|i|
	if d[i] == 1 then
		d[i] = 2
		(2*i).step(X, i) {|j|
			n = 1
			k = j
			while k % i == 0 do
				n += 1
				k /= i
			end
			d[j] *= n
		}
	end
}

min = X
minpair = nil

1.upto(X/2) {|a|
	b = X - a
	v = (a - d[a] - b + d[b]).abs
	if min > v then
		min = v
		minpair = a == b ? [[a, b]] : [[a, b], [b, a]]
	elsif min == v then
		minpair << [a, b]
		minpair << [b, a] if a != b
	end
}

minpair.sort_by{|x| x[0]}.each {|a, b|
	puts "#{a} #{b}"
}
0