結果
| 問題 | 
                            No.2768 Password Crack
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2024-06-04 04:59:02 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 177 ms / 2,000 ms | 
| コード長 | 652 bytes | 
| コンパイル時間 | 324 ms | 
| コンパイル使用メモリ | 81,920 KB | 
| 実行使用メモリ | 93,528 KB | 
| 平均クエリ数 | 881.63 | 
| 最終ジャッジ日時 | 2024-12-23 10:47:30 | 
| 合計ジャッジ時間 | 5,251 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 29 | 
ソースコード
N = int(input())
T = 'a' * N
print(f'? {T}')
M = int(input())
if M == N:
    print(f'! {T}')
    exit()
Mmx = M
s = 'abcdefghijklmnopqrstuvwxyz'
for i in range(N):
    ok = False
    for j in range(24):
        c = s[j+1]
        T = T[:i] + c + T[i+1:]
        print(f'? {T}')
        M = int(input())
        if M == N:
            print(f'! {T}')
            exit()
        elif M > Mmx:
            ok = True
            Mmx = M
            break
        elif M < Mmx:
            ok = True
            T = T[:i] + 'a' + T[i+1:]
            break
    if ok == False:
        T = T = T[:i] + 'z' + T[i+1:]
        Mmx += 1
print(f'! {T}')
exit()