結果
| 問題 | 
                            No.1113 二つの整数 / Two Integers
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2020-11-10 18:43:48 | 
| 言語 | Ruby  (3.4.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 79 ms / 1,000 ms | 
| コード長 | 1,310 bytes | 
| コンパイル時間 | 160 ms | 
| コンパイル使用メモリ | 7,552 KB | 
| 実行使用メモリ | 12,416 KB | 
| 最終ジャッジ日時 | 2024-07-22 18:04:58 | 
| 合計ジャッジ時間 | 2,495 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 15 | 
コンパイルメッセージ
Syntax OK
ソースコード
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