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'
ã“ã“ã§ãã‚Œãžã‚Œã®è¨˜å·ã¯ä»¥ä¸‹ã®ã‚ˆã†ãªæ„味を表ã™ï¼Ž
ã—ã‹ã—ã“ã®æš—å·æ–‡ã‚’生æˆã™ã‚‹æ©Ÿæ¢°ã«ã¯ç¾åœ¨æ•…éšœãŒç™ºç”Ÿã—ã¦ãŠã‚Šï¼Œæš—å·æ–‡ã®ã†ã¡ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆã®ç®‡æ‰€ãŒæ•°æ–‡å—壊れã¦èªã‚ãªããªã£ã¦ã„ã‚‹å ´åˆãŒã‚る.èªã‚ãªã„æ–‡å—ã¯ä»®ã« '?' ã¨è¡¨ã•ã‚Œã¦ã„る. 調査ã®çµæžœï¼Œå£Šã‚ŒãŸæ–‡å—ã®åŸ‹ã‚æ–¹ã¯ï¼Œå¾©å·å¾Œã®æ–‡å—列ãŒï¼Œå¾©å·å¾Œã®æ–‡å—列ã¨ã—ã¦ã‚ã‚Šãˆã‚‹æ–‡å—列ã®ä¸ã§è¾žæ›¸é †æœ€å°ã«ãªã‚‹ã‚ˆã†ãªã‚‚ã®ã§ã‚ã‚‹ã“ã¨ãŒã‚ã‹ã£ãŸï¼Ž ã‚ãªãŸã®ä»•äº‹ã¯ã“ã®æš—å·æ–‡ã‚’æ£ã—ã復å·ã™ã‚‹ã“ã¨ã§ã‚る.
入力ã¯è¤‡æ•°ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã‹ã‚‰æ§‹æˆã•ã‚Œã‚‹ï¼Ž å„データセットã¯ï¼Œä¸Šè¨˜ã® BNF ã§å®šç¾©ã•ã‚ŒãŸæš—å·æ–‡ã«ãŠã„ã¦ï¼Œä¸€éƒ¨ã®å¤§æ–‡å—ã®ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆãŒ ‘?’ ã«ç½®ãæ›ãˆã‚‰ã‚ŒãŸæ–‡å—列をå«ã‚€ 1 è¡Œã‹ã‚‰ãªã‚‹ï¼Ž å„æ–‡å—列ã®é•·ã•ã¯ 80 以下ã§ã‚ã‚‹ã¨ä»®å®šã—ã¦ã‚ˆã„. ã¾ãŸå„データセットã«å«ã¾ã‚Œã‚‹ '?' ã®æ•°ã¯ 0 以上 3 以下ã§ã‚ã‚‹ã¨ä»®å®šã—ã¦ã‚ˆã„.
入力ã®çµ‚了㯠'.' ã®1æ–‡å—ã ã‘ã‚’å«ã‚€è¡Œã§è¡¨ã•ã‚Œã‚‹ï¼Ž
å„データセットã«å¯¾ã—ã¦ï¼Œå¾©å·å¾Œã®æ–‡å—列ãŒè¾žæ›¸é †æœ€å°ã«ãªã‚‹ã‚ˆã†ã«æš—å·æ–‡ã‚’復å·ã—ãŸã¨ãã®ï¼Œå¾©å·å¾Œã®æ–‡å—列を出力ã›ã‚ˆï¼Ž
A+A++A Z-Z--Z+-Z [ESREVER] J---?---J ++++++++A+++Z-----------A+++Z [[++-+--?[--++-?++-+++L]][-+-----+-O]]++++---+L .
ABC ZYXZ REVERSE JAG ICPC JAPAN