結果
問題 |
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='')