結果

問題 No.1113 二つの整数 / Two Integers
ユーザー maguroflymagurofly
提出日時 2020-11-10 18:43:48
言語 Ruby
(3.3.0)
結果
AC  
実行時間 81 ms / 1,000 ms
コード長 1,310 bytes
コンパイル時間 42 ms
コンパイル使用メモリ 11,332 KB
実行使用メモリ 15,344 KB
最終ジャッジ日時 2023-09-30 00:06:53
合計ジャッジ時間 2,907 ms
ジャッジサーバーID
(参考情報)
judge11 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 81 ms
15,040 KB
testcase_01 AC 69 ms
15,224 KB
testcase_02 AC 68 ms
15,312 KB
testcase_03 AC 66 ms
15,240 KB
testcase_04 AC 66 ms
15,152 KB
testcase_05 AC 72 ms
15,220 KB
testcase_06 AC 66 ms
15,316 KB
testcase_07 AC 70 ms
15,100 KB
testcase_08 AC 65 ms
15,052 KB
testcase_09 AC 66 ms
15,056 KB
testcase_10 AC 68 ms
15,304 KB
testcase_11 AC 70 ms
15,344 KB
testcase_12 AC 70 ms
15,156 KB
testcase_13 AC 71 ms
15,252 KB
testcase_14 AC 69 ms
15,300 KB
testcase_15 AC 67 ms
15,060 KB
testcase_16 AC 68 ms
15,284 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

DEBUG = true
MOD = 10**9+7
YESNO = %w(Odd Even)

def square?(n)
  ac, wa = 0, n+1
  while ac + 1 < wa
    wj = (ac + wa) / 2
    case wj*wj <=> n
    when -1
        ac = wj
    when 1
        wa = wj
    else
        return true
    end
  end
  false
end

def main
  @A, @B = ints
  n = gcd(@A, @B)
  
  yesno square?(n)
end

def int; gets.to_i; end
def ints; gets.split.map &:to_i; end
def array(&convert); gets.split.map(&convert); end
def string; gets.chomp; end
def rep(n, &b); Array.new(n, &b); end
def yes; puts YESNO[0]; end
def no; puts YESNO[1]; end
def yesno t; t ? yes : no; end
def max(*xs); xs.max; end
def min(*xs); xs.max; end
def minmax(*xs); xs.minmax; end
def matrix(h, w, fill=nil); Array.new(h) { [fill] * w }; end
def debug(x); STDERR.puts x.inspect if DEBUG; end

def gcd(*xs); xs.inject(0) { |y, x| y.gcd(x) }; end
def factorial(n, mod); (2..n).inject(1) { |f, x| f * x % mod }; end
def cumsum(xs); ys = [0]; xs.each { |x| ys << x + ys[-1] }; ys; end
def cumdiff(ys); xs = []; xs.inject { |x, y| xs << (d = y - x); d }; end
def cumfold(ys, range); r = range.end; r -= 1 if range.exclusive_end?; ys[r] - ys[range.begin-1]; end
def mod_inv(x, mod); x.pow(mod-2, mod); end
def mod_div(x, y, mod); x * mod_inv(y, mod) % mod; end
def bitbrute(size, block); (1<<size).times(&block); end

main
0