#include #include #include #include #include #include #include using namespace std; using uint = unsigned int; using ll = long long; #define CIN( LL , A ) LL A; cin >> A #define GETLINE( A ) string A; getline( cin , A ) #define FOR_LL( VAR , INITIAL , FINAL_PLUS_ONE ) for( ll VAR = INITIAL ; VAR < FINAL_PLUS_ONE ; VAR ++ ) #define FOR_ITR( ARRAY , ITR , END ) for( auto ITR = ARRAY .begin() , END = ARRAY .end() ; ITR != END ; ITR ++ ) #define RETURN( LL , ANSWER ) LL answer_for_contest = ( ANSWER ); cout << answer_for_contest << endl; return 0 template inline T Distance( const T& a , const T& b ){ return a < b ? b - a : a - b; } int main() { CIN( string , S ); // https://qiita.com/kiseragi/items/a0e07db26351ec2ef67b より文字一覧をコピー&編集 list a = { "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "1","2","3","4","5","6","7","8","9","0", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9", "あ","い","う","え","お", "か","き","く","け","こ", "さ","し","す","せ","そ", "た","ち","つ","て","と", "な","に","ぬ","ね","の", "は","ひ","ふ","へ","ほ", "ま","み","む","め","も", "や","ゆ","よ", "ら","り","る","れ","ろ", "わ","ゐ","う","ゑ","を","ん", "ゔ", "が","ぎ","ぐ","げ","ご", "ざ","じ","ず","ぜ","ぞ", "だ","ぢ","づ","で","ど", "ば","び","ぶ","べ","ぼ", "ぱ","ぴ","ぷ","ぺ","ぽ", "ぁ","ぃ","ぅ","ぇ","ぉ", "っ", "ゃ","ゅ","ょ", "ゎ", "ア","イ","ウ","エ","オ", "カ","キ","ク","ケ","コ", "サ","シ","ス","セ","ソ", "タ","チ","ツ","テ","ト", "ナ","ニ","ヌ","ネ","ノ", "ハ","ヒ","フ","ヘ","ホ", "マ","ミ","ム","メ","モ", "ヤ","ユ","ヨ", "ラ","リ","ル","レ","ロ", "ワ","ヰ","ウ","ヱ","ヲ","ン", "ヴ", "ガ","ギ","グ","ゲ","ゴ", "ザ","ジ","ズ","ゼ","ゾ", "ダ","ヂ","ヅ","デ","ド", "バ","ビ","ブ","ベ","ボ", "ヷ","ヸ","ヹ","ヺ", "パ","ピ","プ","ペ","ポ", "ァ","ィ","ゥ","ェ","ォ", "ヵ","ㇰ","ヶ", "ㇱ","ㇲ", "ッ","ㇳ", "ㇴ", "ㇵ","ㇶ","ㇷ","ㇸ","ㇹ", "ㇺ", "ャ","ュ","ョ", "ㇻ","ㇼ","ㇽ","ㇾ","ㇿ", "ヮ" }; string answer = ""; ll size_S = S.size(); while( size_S != 0 ){ FOR_ITR( a , itr , end ){ const ll size_c = itr->size(); if( size_c <= size_S ){ if( S.substr( 0 , size_c ) == *itr ){ answer = *itr + answer; S = S.substr( size_c ); size_S = S.size(); itr = end; itr--; } } } } RETURN( string , answer ); }