問題一覧 > 通常問題

No.438 Cwwプログラミング入門

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 80
作問者 : btk / テスター : 🍡yurahuna
6 ProblemId : 1100 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2016-11-04 00:55:21

問題文

Cwwというプログラミング言語があります.
Cwwのソースコードは以下の条件を満たすとき,実行可能となります.

・ ソースコードは 'c','w','C','W' の4種類の文字のみからなる.
・ ソースコードは1行の文字列からなる(最後に改行が必要).

Cwwの実行可能なソースコード(文字列)を S とします.
Cwwの実行プログラムは S を入力として以下のように動作します.

(参考:Wikipedia スタック)
・ Cwwの実行プログラムはスタックをもつ.スタックの初期状態の要素数は 0 である.
Si 文字目を Si とすると,実行プログラムは S1,S2,,, と左から順に読み込む.
・ プログラムが文字 'c' を読み込んだとき,スタックの一番上に整数 x が追加される.
・ プログラムが文字 'w' を読み込んだとき,スタックの一番上に整数 y が追加される.
・ スタックの上から 1 番目の要素を a ,スタックの上から 2 番目の要素を b とすると,プログラムが文字 'C' を読み込んだとき,スタックから a,b を取り出しスタックの一番上に a+b を追加する.
・ スタックの上から 1 番目の要素を a ,スタックの上から 2 番目の要素を b とすると,プログラムが文字 'W' を読み込んだとき,スタックから a,b を取り出しスタックの一番上に ab を追加する.
・ プログラムが読み込む文字列がなくなったとき,プログラムはスタックの一番上の整数 z を取り出し, z を出力して動作を終了する.
・ プログラムがスタックから要素を取り出すとき,スタックの要素が空だった場合はプログラムはエラー(WA)となり動作を終了します.'C' or 'W' を読み込むときはスタックの要素を2つ取り出すことに注意してください.

さて,Cww初心者のcwwさんは,Cwwである整数 z を出力するプログラムを作成しています.
整数 x,y,z が与えられるので,cwwさんのために z を出力するCwwのソースコードを一つ作成してください.
ただし,cwwさんは初心者なので長すぎるソースコードは読めません.
なので,出力するソースコードは改行を除いて 10000 文字以内で作成する必要があります.
どのようにしても 10000 文字以内で z を出力することができないときは,"NO"という文字列を1行で出力してください.

入力

x y z

0x,y,z100000000

出力

S

S はCwwのzを出力するソースコードで,1|S|10000 である必要があります.
z を出力するソースコードが構成できないときは ”NO” を 1 行で出力してください.
”NO” の時以外に S に ’c’,’w’,’C’,’W’以外の文字を出力するとエラーになります.

最後に改行してください。

サンプル

サンプル1
入力
1 2 3
出力
cwC

ソースコードが"cwC"のとき,プログラムは以下のように動作します.
[ ] ・・・スタック
'c' : スタックに x=1 を追加 [1]
'w' : スタックに y=2 を追加 [12]
'C' : スタックから, 2,1 を取り出し, 2+1=3 を追加 [3]
よって,ソースコード "cwC" はスタックに残った 3 を出力します.

"wcC" や "wwCcWccWW" なども正解です.

サンプル2
入力
2 3 7
出力
cwwCwCW

ソースコードが"cwwCwCW"のとき,プログラムは以下のように動作します.
[ ] ・・・スタック
'c' : スタックに x=2 を追加 [2]
'w' : スタックに y=3 を追加 [23]
'w' : スタックに y=3 を追加 [233]
'C' : スタックから, 3,3 を取り出し, 3+3=6 を追加 [26]
'w' : スタックに y=3 を追加 [263]
'C' : スタックから, 3,6 を取り出し, 3+6=9 を追加 [29]
'W' : スタックから, 9,2 を取り出し, 92=7 を追加 [7]
よって,ソースコード "cwwCwCW" はスタックに残った 7 を出力します.

サンプル3
入力
42 72 88
出力
NO

制約の元では正解のソースコードを作成することができないので,
代わりに "NO"を出力します.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。