結果

問題 No.1252 数字根D
ユーザー persimmon-persimmonpersimmon-persimmon
提出日時 2021-02-23 12:55:40
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 98 ms / 2,000 ms
コード長 697 bytes
コンパイル時間 172 ms
コンパイル使用メモリ 81,636 KB
実行使用メモリ 76,708 KB
最終ジャッジ日時 2023-10-22 07:19:19
合計ジャッジ時間 3,338 ms
ジャッジサーバーID
(参考情報)
judge15 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 37 ms
53,364 KB
testcase_01 AC 38 ms
53,364 KB
testcase_02 AC 39 ms
53,364 KB
testcase_03 AC 75 ms
72,648 KB
testcase_04 AC 95 ms
76,696 KB
testcase_05 AC 91 ms
76,484 KB
testcase_06 AC 95 ms
76,680 KB
testcase_07 AC 92 ms
76,520 KB
testcase_08 AC 98 ms
76,708 KB
testcase_09 AC 90 ms
76,328 KB
testcase_10 AC 95 ms
76,700 KB
testcase_11 AC 96 ms
76,556 KB
testcase_12 AC 93 ms
76,484 KB
testcase_13 AC 97 ms
76,416 KB
testcase_14 AC 38 ms
53,364 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

t=int(input())
dab=[list(map(int,input().split())) for _ in range(t)]
for d,a,b in dab:
  if a==0:
    if b==0:
      print(0)
      continue
    a+=1  

  # 1からbまで
  num_b=b
  while num_b>=d:
    bb=num_b
    num_b=0
    while bb:
      num_b+=bb%d
      bb//=d
  # 1~d-1の和を項数//(d-1)個分
  ans1=(b//(d-1))*((d-1)*d//2)
  # 1~num_bまでの和
  if num_b!=d-1:
    ans1+=(num_b+1)*num_b//2

  # 1からa-1まで
  a-=1

  num_a=a
  while num_a>=d:
    aa=num_a
    num_a=0
    while aa:
      num_a+=aa%d
      aa//=d

  # 1~d-1の和を項数//(d-1)個分
  ans0=(a//(d-1))*((d-1)*d//2)
  # 1~num_bまでの和
  if num_a!=d-1:
    ans0+=(num_a+1)*num_a//2
  print(ans1-ans0)
0