結果
| 問題 |
No.854 公平なりんご分配
|
| コンテスト | |
| ユーザー |
dn6049949
|
| 提出日時 | 2019-07-26 23:12:21 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 2,803 bytes |
| コンパイル時間 | 235 ms |
| コンパイル使用メモリ | 82,252 KB |
| 実行使用メモリ | 70,168 KB |
| 最終ジャッジ日時 | 2024-07-02 09:21:58 |
| 合計ジャッジ時間 | 8,608 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 2 |
| other | RE * 92 |
ソースコード
#!usr/bin/env python3
from collections import defaultdict,deque
from heapq import heappush, heappop
import sys
import math
import bisect
import random
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def LS():return [list(x) for x in sys.stdin.readline().split()]
def S(): return list(sys.stdin.readline())[:-1]
def IR(n):
return [I() for i in range(n)]
def LIR(n):
return [LI() for i in range(n)]
def SR(n):
return [S() for i in range(n)]
def LSR(n):
return [LS() for i in range(n)]
sys.setrecursionlimit(1000000)
mod = 1000000007
#A
def A():
try:
n = I()
a = IR(n)
l = []
for i in range(n):
for j in range(i):
l.append(a[i]+a[j])
l = list(set(l))
l.sort()
l = l[::-1]
print(l[1])
except:
print('"assert"')
return
#B
def B():
n = I()
return
#C
def C():
def su(n):
return n*(n+1)//2
h,w = LI()
w = abs(w)
if w == 0:
print(0)
if h < w:
ans = su(w)-su(w-h)
else:
ans = h-w+su(w)
print(ans)
return
#D
def D():
def factor(n):
if n < 4:
return [n]
res = []
i = 2
while i ** 2 <= n:
if n%i == 0:
while n%i == 0:
n //= i
res.append(i)
i += 1
if n != 1:
res.append(n)
return res
import numpy as np
n = I()
a = LI()
li = [i for i in range(2,2000)]
for d in li:
li = [x for x in li if(x == d or x%d != 0)]
li.insert(0,0)
m = len(li)
ind = [0]*2000
for i in range(m):
ind[li[i]] = i
f = np.array([[0 for j in range(m)] for i in range(n+1)])
for i in range(n):
f[i+1] += f[i]
if a[i] == 1:
continue
res = factor(a[i])
for j in res:
f[i+1][ind[j]] += 1
q = I()
for i in range(q):
p,l,r = LI()
if p == 1:
print("Yes")
else:
if f[r][0]-f[l-1][0]:
print("Yes")
else:
res = factor(p)
d = defaultdict(lambda : 0)
for j in res:
if j > 1999:
print("NO")
break
d[ind[j]] += 1
else:
for k,x in d.items():
if f[r][k]-f[l-1][k] < x:
print("NO")
break
else:
print("Yes")
return
#E
def E():
n = I()
return
#F
def F():
n = I()
return
#Solve
if __name__ == "__main__":
D()
dn6049949