結果
| 問題 |
No.2649 [Cherry 6th Tune C] Anthem Flower
|
| コンテスト | |
| ユーザー |
ゼット
|
| 提出日時 | 2024-02-23 21:59:21 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 846 ms / 2,000 ms |
| コード長 | 798 bytes |
| コンパイル時間 | 233 ms |
| コンパイル使用メモリ | 82,460 KB |
| 実行使用メモリ | 83,900 KB |
| 最終ジャッジ日時 | 2024-09-29 06:35:45 |
| 合計ジャッジ時間 | 9,769 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 35 |
ソースコード
Q=int(input())
for _ in range(Q):
S,M=input().split()
M=int(M)
N=len(S)
u=[1]*N
mod=M
if M==1:
print(0)
continue
for i in range(1,N):
u[i]=u[i-1]*10
u[i]%=mod
x=0
for i in range(N):
x+=int(S[-(i+1)])*u[i]
x%=mod
if M%2==1:
result=x*(x+1)
result%=mod
result*=pow(2,-1,mod)
result%=mod
print(result)
else:
result=x*(x+1)//2
result%=mod
if (x+1)%mod==0:
result=0
u2=[1]*N
mod2=2*M
for i in range(1,N):
u2[i]=u2[i-1]*10
u2[i]%=mod2
z=0
for i in range(N):
z+=int(S[-(i+1)])*u2[i]
z%=mod2
if x%2==0:
if z!=x:
result+=(M//2)*(x+1)
result%=mod
else:
if ((z+1)%mod2)!=((x+1)%mod):
result+=(M//2)*x
result%=mod
print(result)
ゼット