結果
| 問題 | No.3502 GCD Knapsack |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-08-18 00:44:59 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
AC
|
| 実行時間 | 127 ms / 2,000 ms |
| + 753µs | |
| コード長 | 811 bytes |
| 記録 | |
| コンパイル時間 | 250 ms |
| コンパイル使用メモリ | 95,856 KB |
| 実行使用メモリ | 124,544 KB |
| 最終ジャッジ日時 | 2026-08-18 00:46:10 |
| 合計ジャッジ時間 | 7,394 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 35 |
ソースコード
def Eratosthenes(n):
isPrime = [True]*(n+1)
isPrime[0], isPrime[1] = False, False
for i in range(2, n+1):
if isPrime[i]:
for j in range(i*i, n+1, i):
isPrime[j] = False
return isPrime
def fast_zeta(F):
isPrime = Eratosthenes(len(F))
for i in range(2, len(F)):
if isPrime[i]:
for j in range((len(F)-1)//i, 0, -1):
F[j] += F[j*i]
def fast_mobius(F):
isPrime = Eratosthenes(len(F))
for i in range(2, len(F)):
if isPrime[i]:
for j in range(1, (len(F)-1)//i+1):
F[j] -= F[j*i]
N, W = map(int, input().split())
X = list(map(int, input().split()))
Y = list(map(int, input().split()))
S = [0]*(10**5*2+1)
for i in range(N):
S[X[i]] += Y[i]
fast_zeta(S)
print(max(S[W:]))
detteiuu