結果
問題 | No.2744 Power! or +1 |
ユーザー |
|
提出日時 | 2025-03-12 13:51:54 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,129 bytes |
コンパイル時間 | 465 ms |
コンパイル使用メモリ | 82,828 KB |
実行使用メモリ | 391,748 KB |
最終ジャッジ日時 | 2025-03-12 13:52:09 |
合計ジャッジ時間 | 14,174 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 8 TLE * 1 |
ソースコード
import heapqN,a,b,c = map(int,input().split())C = {}x = Nfor i in range(2,N+1):if i*i>N:breakwhile x%i==0:x //=iC[i] = C.get(i,0)+1if x>1:C[x] = C.get(x,0)+1n = 0for p in C:n = max(n,pow(p,C[p]))K = 0while b**K<=N*a:K += 1A = list(range(N))A[0] = 1A[1] = 1for i in range(2,N):A[i] = (A[i-1]*i)%NG = {i:[] for i in range(N+1)}for i in range(1,N):G[i].append(((i+1)%N,a))G[N].append((0,c))for i in range(2,N):for k in range(2,K+1):m = pow(i,k,N)G[i].append((m,pow(b,k)))k1 = 2while pow(i,k1)<n:k1 += 1G[i].append((N,pow(b,k1)))prod = 1J = N-1for i in range(2,N):prod *= iif prod>=n:J = ibreakfor i in range(2,N):G[i].append((A[i],c))if i>=J:G[i].append((N,c))for i in range(n,N):G[i].append((0,c))INFTY = 5*10**10dist = [INFTY]*(N+1)dist[1] = 0que = [(0,1)]while que:d,x = heapq.heappop(que)if dist[x]<d:continuefor y,c in G[x]:if dist[y]>d+c:dist[y] = d+cheapq.heappush(que,(dist[y],y))print(dist[0])