結果

問題 No.854 公平なりんご分配
コンテスト
ユーザー letrangerjp
提出日時 2019-07-26 22:11:18
言語 Ruby
(4.0.1)
コンパイル:
ruby -w -c _filename_
実行:
ruby _filename_
結果
MLE  
実行時間 -
コード長 540 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 870 ms
コンパイル使用メモリ 8,832 KB
実行使用メモリ 1,322,088 KB
最終ジャッジ日時 2026-03-23 12:55:39
合計ジャッジ時間 27,823 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample MLE * 2
other AC * 64 TLE * 7 MLE * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #
raw source code

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