提出 #8501110
ソースコード 拡げる
# frozen_string_literal: true
input = gets.chomp.split(' ').map(&:to_i)
X = input[0]
Y = input[1]
modu = 1_000_000_007
modu_list = (modu - 2).to_s(2).split('').map(&:to_i).reverse
# def derive_inverse(num, modu)
# i = 0
# res = 1
# until (res % num).zero?
# res += modu
# i += 1
# end
# (1 + i * modu) / num
# end
def derive_inverse(num, modu, modu_list = [])
result = num
result_list = [num % modu]
time_time = 1
while result_list.length < modu_list.length do
result = result**2 % modu
time_time *= 2
result_list << result
end
result = 1
result_list.each_with_index do |e, i|
result = result * e % modu if modu_list[i] != 0
end
result
end
# def derive_inverse(num, modu)
# return num.pow(modu-2, modu)
# end
if ((2 * Y - X) % 3).zero? && ((2 * X - Y) % 3).zero? && (2 * Y - X >= 0) && (2 * X - Y >= 0)
m = (2 * Y - X) / 3
n = (2 * X - Y) / 3
answer = 1
if m < n
ele = m
elem = n
else
ele = n
elem = m
end
deno = 1
ele.times do |i|
deno = deno * (i + 1) % modu
answer = answer * (elem + 1 + i) % modu
end
deno = derive_inverse(deno, modu, modu_list)
answer = answer * deno % modu
else
answer = 0
end
puts answer % modu
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Knight |
| ユーザ | pigutty |
| 言語 | Ruby (2.3.3) |
| 得点 | 400 |
| コード長 | 1293 Byte |
| 結果 | AC |
| 実行時間 | 55 ms |
| メモリ | 1916 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01, sample_02, sample_03 |
| All | hand_01, hand_02, hand_03, hand_04, random_01, random_02, random_03, random_04, random_05, random_06, random_07, random_08, random_09, random_10, random_11, random_12, random_13, random_14, random_15, random_16, random_17, random_18, random_19, random_20, random_21, random_22, random_23, random_24, sample_01, sample_02, sample_03 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| hand_01 | AC | 7 ms | 1788 KiB |
| hand_02 | AC | 7 ms | 1788 KiB |
| hand_03 | AC | 7 ms | 1788 KiB |
| hand_04 | AC | 7 ms | 1788 KiB |
| random_01 | AC | 7 ms | 1788 KiB |
| random_02 | AC | 7 ms | 1788 KiB |
| random_03 | AC | 7 ms | 1788 KiB |
| random_04 | AC | 7 ms | 1788 KiB |
| random_05 | AC | 7 ms | 1788 KiB |
| random_06 | AC | 7 ms | 1788 KiB |
| random_07 | AC | 7 ms | 1788 KiB |
| random_08 | AC | 7 ms | 1788 KiB |
| random_09 | AC | 7 ms | 1788 KiB |
| random_10 | AC | 26 ms | 1788 KiB |
| random_11 | AC | 7 ms | 1788 KiB |
| random_12 | AC | 25 ms | 1788 KiB |
| random_13 | AC | 24 ms | 1788 KiB |
| random_14 | AC | 19 ms | 1788 KiB |
| random_15 | AC | 17 ms | 1788 KiB |
| random_16 | AC | 7 ms | 1788 KiB |
| random_17 | AC | 50 ms | 1788 KiB |
| random_18 | AC | 51 ms | 1788 KiB |
| random_19 | AC | 51 ms | 1788 KiB |
| random_20 | AC | 55 ms | 1788 KiB |
| random_21 | AC | 51 ms | 1788 KiB |
| random_22 | AC | 51 ms | 1788 KiB |
| random_23 | AC | 50 ms | 1788 KiB |
| random_24 | AC | 50 ms | 1916 KiB |
| sample_01 | AC | 7 ms | 1788 KiB |
| sample_02 | AC | 7 ms | 1788 KiB |
| sample_03 | AC | 51 ms | 1788 KiB |