結果

問題 No.854 公平なりんご分配
ユーザー letrangerjp
提出日時 2019-07-26 22:11:18
言語 Ruby
(3.4.1)
結果
MLE  
実行時間 -
コード長 540 bytes
コンパイル時間 549 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 822,656 KB
最終ジャッジ日時 2024-07-02 07:34:52
合計ジャッジ時間 39,961 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 67 MLE * 14 -- * 11
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

require "prime"

$memo = { 0 => [[0, 1]] }
def f(n)
  $memo[n] ||= n.prime_division
end

P = 10**9+7

N = gets.to_i
A = gets.split.map &:to_i
Q = gets.to_i
PLR = $<.map{|s|
  s.split.map &:to_i
}

$cusum = [primes = Hash.new(0)] + A.map{|a|
  primes = primes.dup
  f(a).each{|k, v|
    primes[k] += v
  }
  primes
}

PLR.each{|p, l, r|
  # p f(p)
  # puts [$cusum[r], $cusum[l-1]]
  if $cusum[r][0] - $cusum[l-1][0] > 0
    puts "Yes"
  elsif f(p).all?{|k, v| $cusum[r][k] - $cusum[l-1][k] >= v }
    puts "Yes"
  else
    puts "NO"
  end
}
0