結果
問題 | No.1645 AB's abs |
ユーザー |
|
提出日時 | 2021-08-13 21:27:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 107 ms / 2,000 ms |
コード長 | 1,486 bytes |
コンパイル時間 | 187 ms |
コンパイル使用メモリ | 82,072 KB |
実行使用メモリ | 90,028 KB |
最終ジャッジ日時 | 2024-10-03 17:10:54 |
合計ジャッジ時間 | 5,088 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 |
ソースコード
spf = [i for i in range(10**5)]for i in range(2,10**5):if spf[i]!=i:continuefor j in range(2*i,10**5,i):spf[j] = idef factorization(n):res = []for i in range(2,n+1):if i**2 > n:breakif n%i==0:assert spf[i]==icnt = 0while n%i==0:cnt += 1n //= ires.append((i,cnt))if n!=1:res.append((n,1))return resdef divisors(n):res = []for i in range(2,n+1):if i**2 >= n:breakif n%i==0:res.append(i)res.append(n//i)if i**2==n:res.append(i)return resimport sys,random,bisectfrom collections import deque,defaultdictfrom heapq import heapify,heappop,heappushfrom itertools import permutationsfrom math import gcd,loginput = lambda :sys.stdin.readline().rstrip()mi = lambda :map(int,input().split())li = lambda :list(mi())mod = 998244353N = int(input())A = li()S = sum(A)dp = [0 for i in range(-S,S+1)]dp[0] = 1for i in range(N):ndp = [0 for i in range(-S,S+1)]for val in range(-S,S+1):if not dp[val]:continuendp[val+A[i]] += dp[val]ndp[val+A[i]] %= modndp[val-A[i]] += dp[val]ndp[val-A[i]] %= moddp = ndpres = 0for i in range(-S,0):res -= dp[i] * ires %= modfor i in range(0,S+1):res += dp[i] * ires %= modprint(res)