結果
| 問題 |
No.1725 [Cherry 3rd Tune D] 無言の言葉
|
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 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 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 42 |
ソースコード
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)
sasa8uyauya