結果

問題 No.319 happy b1rthday 2 me
ユーザー Mao-beta
提出日時 2025-02-18 17:37:54
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 2,540 bytes
コンパイル時間 330 ms
コンパイル使用メモリ 82,260 KB
実行使用メモリ 64,896 KB
最終ジャッジ日時 2025-02-18 17:37:58
合計ジャッジ時間 3,380 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 27 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import sys
import math
import bisect
from heapq import heapify, heappop, heappush
from collections import deque, defaultdict, Counter
from functools import lru_cache
from itertools import accumulate, combinations, permutations, product
sys.set_int_max_str_digits(10 ** 6)
sys.setrecursionlimit(1000000)
MOD = 10 ** 9 + 7
MOD99 = 998244353
input = lambda: sys.stdin.readline().strip()
NI = lambda: int(input())
NMI = lambda: map(int, input().split())
NLI = lambda: list(NMI())
SI = lambda: input()
SMI = lambda: input().split()
SLI = lambda: list(SMI())
EI = lambda m: [NLI() for _ in range(m)]
def main():
A, B = SMI()
def f(X):
N = len(X)
# i j:less k:1 l:12
dp = [[[[0]*(N+1) for _ in range(2)] for _ in range(2)] for _ in range(N+1)]
dp[0][0][0][0] = 1
for i in range(N):
s = int(X[i])
for j in range(2):
xmax = 9 if j else s
for k in range(2):
for l in range(N+1):
d = dp[i][j][k][l]
if d == 0:
continue
for x in range(xmax+1):
ni = i+1
if j == 0 and x == xmax:
nj = 0
else:
nj = 1
nk = 1 if x == 1 else 0
nl = l + int(k and x == 2)
# print(i, j, k, l, x, ni, nj, nk, nl)
dp[ni][nj][nk][nl] += d
res = 0
for j in range(2):
for k in range(2):
for l in range(N+1):
res += dp[N][j][k][l] * l
if int(X) >= 2:
res += 1
if int(X) <= 21:
return res
if int(X) <= 99:
return res + 1
if int(X[0]) >= 3:
for i in range(1, N-2+1):
res += 10**i
res += 1
elif int(X[0]) == 2:
for i in range(1, N - 3 + 1):
res += 10 ** i
res += int(X[1:-1]) + 1
if int(X[-1]) <= 1:
res -= 1
res += 1
else:
for i in range(1, N-3+1):
res += 10**i
res += 1
return res
fa = f(str(int(A)-1))
fb = f(B)
print(fb - fa - int(len(A) >= 2 and A[0] == "2" and A[-1] == "2"))
if __name__ == "__main__":
main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0