結果
| 問題 |
No.3244 Range Multiple of 8 Query
|
| コンテスト | |
| ユーザー |
ゼット
|
| 提出日時 | 2025-08-23 22:08:39 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 997 bytes |
| コンパイル時間 | 427 ms |
| コンパイル使用メモリ | 82,356 KB |
| 実行使用メモリ | 113,328 KB |
| 最終ジャッジ日時 | 2025-08-23 22:10:03 |
| 合計ジャッジ時間 | 84,059 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 19 WA * 21 |
ソースコード
N,Q=map(int,input().split())
S=input()
G=[[] for i in range(10)]
v=[[0]*N for i in range(10)]
for i in range(N):
x=int(S[i])
G[x].append(i)
for y in range(10):
if y==x:
v[y][i]=v[y][i-1]+1
else:
v[y][i]=v[y][i-1]
for _ in range(Q):
l,r=map(int,input().split())
l-=1
r-=1
h=[[-10**10]*3 for i in range(10)]
for x in range(10):
pos=v[x][r]
for e in range(pos-1,pos-4,-1):
if e<0:
break
t=G[x][e]
if t>=l:
h[x][(pos-1-e)]=t
result=10**10
for y in range(13,125):
z=str(8*y)
ans=0
a,b,c=int(z[2]),int(z[1]),int(z[0])
ans+=r-h[a][0]
pos1=h[a][0]
k=0
if b==a:
k+=1
ans+=r-1-h[b][k]
pos2=h[b][k]
k=0
if c==a:
k+=1
if c==b:
k+=1
ans+=r-2-h[c][k]
pos3=h[c][k]
if pos1<pos2:
ans+=1
if pos1<pos3:
ans+=1
if pos2<pos3:
ans+=1
result=min(result,ans)
if result<10**8:
print(result)
else:
print(-1)
ゼット