結果
| 問題 |
No.3290 Encrypt Failed, but Decrypt Succeeded
|
| コンテスト | |
| ユーザー |
ゼット
|
| 提出日時 | 2025-10-03 22:13:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,720 bytes |
| コンパイル時間 | 307 ms |
| コンパイル使用メモリ | 82,332 KB |
| 実行使用メモリ | 119,588 KB |
| 最終ジャッジ日時 | 2025-10-03 22:13:13 |
| 合計ジャッジ時間 | 4,627 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 WA * 11 RE * 1 |
ソースコード
N,K=map(int,input().split())
S=input()
v=[1]*(N+1)
for i in range(2,N+1):
v[i]=v[i-1]+v[i-2]
if v[i]>10**19:
v[i]=10**19
h=[0]*(N+2)
h[N]=1
s=1
x=1
for i in range(N-1,-1,-1):
if S[i]=='1':
if i<N-1 and S[i+1]=='0':
h[i]=h[i+2]
continue
h[i]=h[i+1]+h[i+2]
if h[i]>10**19:
h[i]=10**19
elif S[i]=='2':
if i<N-1 and S[i+1]=='0':
h[i]=h[i+2]
elif i<N-1 and int(S[i+1])<=6:
h[i]=h[i+1]+h[i+2]
if h[i]>10**19:
h[i]=10**19
else:
h[i]=h[i+1]
else:
h[i]=h[i+1]
result=[]
now=0
rest=K-1
while True:
if now==N-1:
c=int(S[now])-1
result.append(chr(ord('a')+c))
now+=1
else:
if S[now]=='1':
if S[now+1]=='0':
c=int(S[now])*10+int(S[now+1])-1
result.append(chr(ord('a')+c))
now+=2
continue
if h[now+1]<=rest:
rest-=h[now+1]
c=int(S[now])*10+int(S[now+1])-1
result.append(chr(ord('a')+c))
now+=2
else:
c=int(S[now])-1
result.append(chr(ord('a')+c))
now+=1
elif S[now]=='2':
if i<N-1 and S[now+1]=='0':
c=int(S[now])*10+int(S[now+1])-1
result.append(chr(ord('a')+c))
now+=2
elif i<N-1 and int(S[now+1])<=6:
if h[now+1]<=rest:
rest-=h[now+1]
c=int(S[now])*10+int(S[now+1])-1
result.append(chr(ord('a')+c))
now+=2
else:
c=int(S[now])-1
result.append(chr(ord('a')+c))
now+=1
else:
c=int(S[now])-1
result.append(chr(ord('a')+c))
now+=1
else:
c=int(S[now])-1
result.append(chr(ord('a')+c))
now+=1
if now>=N:
break
print(*result,sep='')
ゼット