結果

問題 No.3290 Encrypt Failed, but Decrypt Succeeded
ユーザー ゼット
提出日時 2025-10-03 22:08:30
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,521 bytes
コンパイル時間 315 ms
コンパイル使用メモリ 82,368 KB
実行使用メモリ 119,676 KB
最終ジャッジ日時 2025-10-03 22:08:37
合計ジャッジ時間 4,612 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 8 WA * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

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':
    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 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='')
    
0