結果

問題 No.3064 う し た ぷ に き あ く ん 笑
ユーザー 👑 p-adicp-adic
提出日時 2022-08-23 17:53:28
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 1,870 bytes
コンパイル時間 2,294 ms
コンパイル使用メモリ 197,716 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-04-19 09:06:07
合計ジャッジ時間 5,395 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 WA -
testcase_32 WA -
testcase_33 WA -
testcase_34 WA -
testcase_35 WA -
testcase_36 WA -
testcase_37 WA -
testcase_38 WA -
testcase_39 WA -
testcase_40 WA -
testcase_41 WA -
testcase_42 WA -
testcase_43 WA -
testcase_44 WA -
testcase_45 WA -
testcase_46 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
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 GETLINE_SEPARATE( A , SEPARATOR ) string A; getline( cin , A , SEPARATOR ) 
#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 REPEAT( HOW_MANY_TIMES ) FOR_LL( VARIABLE_FOR_REPEAT , 0 , HOW_MANY_TIMES ) 
#define RETURN( ANSWER ) cout << ( ANSWER ) << endl; return 0 
#define DOUBLE( PRECISION , ANSWER ) cout << fixed << setprecision( PRECISION ) << ( ANSWER ) << endl; return 0 
#define MIN( A , B ) A < B ? A : B;
#define MAX( A , B ) A < B ? B : A;
template <typename T> inline T Distance( const T& a , const T& b ){ return a < b ? b - a : a - b; }

int main(){
  GETLINE( S );
  string s[26] = {
    "う し " ,
    "う あ " ,
    "ん 笑 " ,
    "た ぷ " ,
    "く ん " ,
    "ぷ に " ,
    "し き " ,
    "あ く " ,
    "う く " ,
    "あ 笑 " ,
    "う ん " ,
    "し ぷ " ,
    "う き " ,
    "く 笑 " ,
    "う 笑 " ,
    "に き " ,
    "ぷ 笑 " ,
    "た き " ,
    "た ん " ,
    "し あ " ,
    "し ん " ,
    "う う " ,
    "う た " ,
    "き 笑 " ,
    "に く " ,
    "笑 笑 "
  };
  ll answer = 0;
  while( S != "" ){
    bool found = false;
    FOR_LL( i , 0 , 26 ){
      string& si = s[i];
      ll size_si = si.size();
      if( S.substr( 0 , size_si ) == si ){
	answer = answer * 26 + i;
	S = S.substr( size_si );
	found = true;
	i = 26;
      }
    }
    if( !found ){
      S = S.substr( 1 );
    }
  }
  RETURN( answer );
}
0