結果
問題 | No.2226 Hello, Forgotten World! |
ユーザー |
![]() |
提出日時 | 2023-03-02 19:37:51 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,138 bytes |
コンパイル時間 | 1,707 ms |
コンパイル使用メモリ | 169,480 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-17 13:25:47 |
合計ジャッジ時間 | 2,225 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 9 |
ソースコード
#include<bits/stdc++.h>using namespace std;int main() {int T;cin >> T;string t = "helloworld";int sz = t.size();auto fn = [&]( auto it ){for( int i = 0; i < sz; i++ ) {if( *(it + i) != t[i] && *(it + i) != '?' ) return 0;}return 1;};for( int i = 0; i < T; i++ ) {int N;string S, S1;cin >> N >> S;int f = 0;for( int j = 0; j + sz <= N; j++ ) {if( S.substr( j, sz ) == t ) {f = 1;break;}}if( f ) {for( int i = 0; i < N; i++ ) {if( S[i] == '?' ) S[i] = 'a';}cout << S << endl;continue;}S1 = S;f = 0;for( int j = N - sz; j >= 0; j-- ) {if( j + sz <= N ) {if( fn( S.begin() + j ) ) {f = 1;S.replace( j, sz, t );break;}}}if( f == 0 ) cout << -1 << endl;else {for( int j = 0; j < N; j++ ) {if( j + sz <= N ) {if( fn( S1.begin() + j ) ) {S1.replace( j, sz, t );break;}}}for( int i = 0; i < N; i++ ) {if( S[i] == '?' ) S[i] = 'a';if( S1[i] == '?' ) S1[i] = 'a';}if( S < S1 ) cout << S << endl;else cout << S1 << endl;}}}