結果
問題 | No.189 SUPER HAPPY DAY |
ユーザー |
![]() |
提出日時 | 2023-02-02 00:28:49 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 3,518 ms / 5,000 ms |
コード長 | 1,576 bytes |
コンパイル時間 | 82 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 12,160 KB |
最終ジャッジ日時 | 2024-07-01 17:11:54 |
合計ジャッジ時間 | 26,046 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
import bisectimport copyimport decimalimport fractionsimport heapqimport itertoolsimport mathimport randomimport sysimport timefrom collections import Counter,deque,defaultdictfrom functools import lru_cache,reducefrom heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_maxdef _heappush_max(heap,item):heap.append(item)heapq._siftdown_max(heap, 0, len(heap)-1)def _heappushpop_max(heap, item):if heap and item < heap[0]:item, heap[0] = heap[0], itemheapq._siftup_max(heap, 0)return itemfrom math import gcd as GCDread=sys.stdin.readreadline=sys.stdin.readlinereadlines=sys.stdin.readlineswrite=sys.stdout.writeM,D=map(int,readline().split())mod=10**9+9M+=1M=list(map(int,list(str(M))))dpM=[0]*1801for i in range(1,M[0]):dpM[i]+=1sum_M=M[0]for m in M[1:]:prevM=dpMdpM=[0]*1801for s in range(1801):for i in range(10):if s+i<1801:dpM[s+i]+=prevM[s]dpM[s+i]%=modfor i in range(m):dpM[sum_M+i]+=1for i in range(1,10):dpM[i]+=1sum_M+=mD+=1D=list(map(int,list(str(D))))dpD=[0]*1801for i in range(1,D[0]):dpD[i]+=1sum_D=D[0]for d in D[1:]:prevD=dpDdpD=[0]*1801for s in range(1801):for i in range(10):if s+i<1801:dpD[s+i]+=prevD[s]dpD[s+i]%=modfor i in range(d):dpD[sum_D+i]+=1for i in range(1,10):dpD[i]+=1sum_D+=dans=sum(m*d%mod for m,d in zip(dpM,dpD))%modprint(ans)