結果
| 問題 | 
                            No.751 Frac #2
                             | 
                    
| コンテスト | |
| ユーザー | 
                             norioc
                         | 
                    
| 提出日時 | 2024-08-17 07:06:12 | 
| 言語 | Elixir  (1.18.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 991 bytes | 
| コンパイル時間 | 5,131 ms | 
| コンパイル使用メモリ | 61,152 KB | 
| 実行使用メモリ | 56,644 KB | 
| 最終ジャッジ日時 | 2024-08-17 07:06:45 | 
| 合計ジャッジ時間 | 29,137 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 18 WA * 18 | 
ソースコード
defmodule Frac do
  defstruct nume: 0, deno: 1
  def new(nume, deno) do
    if deno == 0, do: raise "ZeroDivision error"
    if deno < 0 do
      new(-nume, -deno)
    else
      %__MODULE__{nume: nume, deno: deno}
    end
  end
  def is_less_or_equal(a, b) do
    na = a.nume * b.deno
    nb = b.nume * a.deno
    na <= nb
  end
end
defmodule Main do
  def input, do: IO.read(:line) |> String.trim
  def ii, do: input() |> String.to_integer
  def li, do: input() |> String.split |> Enum.map(&String.to_integer/1)
  def yn(b), do: IO.puts(if b, do: "Yes", else: "No")
  def main do
    _n = ii()
    a = li()
    m = ii()
    b = li()
    nume = hd(a) * (2..m//2 |> Enum.map(fn p -> Enum.at(b, p-1) end) |> Enum.product)
    deno = Enum.product(tl(a)) * (1..m//2 |> Enum.map(fn p -> Enum.at(b, p-1) end) |> Enum.product)
    # IO.inspect {:nume, nume, :deno, deno}
    g = Integer.gcd(nume, deno)
    nume = div(nume, g)
    deno = div(deno, g)
    IO.puts "#{nume} #{deno}"
  end
end
            
            
            
        
            
norioc