結果

問題 No.1725 [Cherry 3rd Tune D] 無言の言葉
ユーザー sasa8uyauyasasa8uyauya
提出日時 2024-11-10 02:29:46
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 578 ms / 4,000 ms
コード長 833 bytes
コンパイル時間 428 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 209,500 KB
最終ジャッジ日時 2024-11-10 02:30:02
合計ジャッジ時間 15,149 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 38 ms
51,968 KB
testcase_01 AC 39 ms
51,968 KB
testcase_02 AC 57 ms
62,976 KB
testcase_03 AC 106 ms
76,416 KB
testcase_04 AC 54 ms
62,336 KB
testcase_05 AC 62 ms
64,768 KB
testcase_06 AC 129 ms
77,696 KB
testcase_07 AC 108 ms
76,928 KB
testcase_08 AC 123 ms
77,056 KB
testcase_09 AC 50 ms
60,800 KB
testcase_10 AC 125 ms
76,544 KB
testcase_11 AC 50 ms
60,544 KB
testcase_12 AC 149 ms
83,712 KB
testcase_13 AC 140 ms
83,584 KB
testcase_14 AC 267 ms
83,712 KB
testcase_15 AC 154 ms
85,376 KB
testcase_16 AC 154 ms
86,144 KB
testcase_17 AC 211 ms
88,288 KB
testcase_18 AC 272 ms
82,816 KB
testcase_19 AC 164 ms
81,792 KB
testcase_20 AC 133 ms
79,616 KB
testcase_21 AC 252 ms
80,768 KB
testcase_22 AC 373 ms
124,936 KB
testcase_23 AC 332 ms
120,388 KB
testcase_24 AC 261 ms
106,496 KB
testcase_25 AC 408 ms
146,712 KB
testcase_26 AC 364 ms
136,064 KB
testcase_27 AC 406 ms
162,260 KB
testcase_28 AC 455 ms
157,568 KB
testcase_29 AC 466 ms
152,432 KB
testcase_30 AC 456 ms
168,440 KB
testcase_31 AC 289 ms
119,348 KB
testcase_32 AC 578 ms
196,896 KB
testcase_33 AC 563 ms
200,904 KB
testcase_34 AC 551 ms
189,704 KB
testcase_35 AC 513 ms
181,388 KB
testcase_36 AC 564 ms
188,652 KB
testcase_37 AC 218 ms
77,568 KB
testcase_38 AC 225 ms
77,568 KB
testcase_39 AC 221 ms
77,568 KB
testcase_40 AC 251 ms
77,824 KB
testcase_41 AC 229 ms
77,952 KB
testcase_42 AC 41 ms
52,224 KB
testcase_43 AC 371 ms
209,500 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

def sc(s):
  c=[]
  for i in range(26):
    c+=[[0]*(len(s)+1)]
    for j in range(len(s)):
      c[i][j+1]=s[j]==chr(i+ord("a"))
      c[i][j+1]+=c[i][j]
  return c

X=input()
xl=len(X)
xc=sc(X)
Y=input()
yl=len(Y)
yc=sc(Y)

def solve(p):
  xy=p%(xl+yl)<=xl
  L=(xl+yl)*(1<<30)-yl
  f=1
  while L>xl:
    if p<=(L-yl)//2:
      p=p
    elif p<=(L-yl)//2+yl:
      p-=(L-yl)//2
      L=xl+yl+xl
    else:
      p=L+1-p
      f^=1
    L=(L-yl)//2
  return (xc[c][p] if f else xc[c][xl]-xc[c][p-1]) if xy else (yc[c][p] if f else yc[c][yl]-yc[c][p-1])+xc[c][xl]

Q=int(input())
for _ in range(Q):
  l,r,c=input().split()
  l=int(l)-1
  r=int(r)
  c=ord(c)-ord("a")
  a=0
  a+=(xc[c][xl]+yc[c][yl])*(r//(xl+yl))
  a+=solve(r) if r%(xl+yl)!=0 else 0
  a-=(xc[c][xl]+yc[c][yl])*(l//(xl+yl))
  a-=solve(l) if l%(xl+yl)!=0 else 0
  print(a)
0