Logo
(追記) (追記ここまで)

22430번 - Broken Cipher Generator 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
8 초 (추가 시간 없음) 512 MB11119100.000%

문제

JAG (Japanese Alumni Group) は多くのプログラマで構成される謎の組織であり,この組織の本部がある建物に入るためには毎回ある機械によって生成される暗号文を解かなくてはならない. この暗号文は,'+','-','[',']' の記号と大文字のアルファベットからなっており,以下の BNF で定義される <Cipher> によって表される.

<Cipher> ::= <String> | <Cipher><String>
<String> ::= <Letter> | '['<Cipher>']'
<Letter> ::= '+'<Letter> | '-'<Letter> |
 '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'

ここでそれぞれの記号は以下のような意味を表す.

  • +(文字) : その文字の次のアルファベットを表す (ただし 'Z' の次のアルファベットは 'A' であるとする)
  • -(文字) : その文字の前のアルファベットを表す (ただし 'A' の前のアルファベットは 'Z' であるとする)
  • [(文字列)] : その文字列を左右反転した文字列を表す

しかしこの暗号文を生成する機械には現在故障が発生しており,暗号文のうちアルファベットの箇所が数文字壊れて読めなくなっている場合がある.読めない文字は仮に '?' と表されている. 調査の結果,壊れた文字の埋め方は,復号後の文字列が,復号後の文字列としてありえる文字列の中で辞書順最小になるようなものであることがわかった. あなたの仕事はこの暗号文を正しく復号することである.

입력

入力は複数のデータセットから構成される. 各データセットは,上記の BNF で定義された暗号文において,一部の大文字のアルファベットが ‘?’ に置き換えられた文字列を含む 1 行からなる. 各文字列の長さは 80ドル$ 以下であると仮定してよい. また各データセットに含まれる '?' の数は 0ドル$ 以上 3ドル$ 以下であると仮定してよい.

入力の終了は '.' の1文字だけを含む行で表される.

출력

各データセットに対して,復号後の文字列が辞書順最小になるように暗号文を復号したときの,復号後の文字列を出力せよ.

제한

예제 입력 1

A+A++A
Z-Z--Z+-Z
[ESREVER]
J---?---J
++++++++A+++Z-----------A+++Z
[[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L
.

예제 출력 1

ABC
ZYXZ
REVERSE
JAG
ICPC
JAPAN

힌트

출처

Contest > ICPC Japanese Alumni Group > JAG Domestic Contest > JAG Domestic Contest 2014 C번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /