No.438 Cwwプログラミング入門
タグ : / 解いたユーザー数 77
作問者 : btk / テスター : 🍡yurahuna
問題文
Cwwというプログラミング言語があります.
Cwwのソースコードは以下の条件を満たすとき,実行可能となります.
・ ソースコードは 'c','w','C','W' の4種類の文字のみからなる.
・ ソースコードは1行の文字列からなる(最後に改行が必要).
Cwwの実行可能なソースコード(文字列)を $S$ とします.
Cwwの実行プログラムは $S$ を入力として以下のように動作します.
(参考:Wikipedia スタック)
・ Cwwの実行プログラムはスタックをもつ.スタックの初期状態の要素数は $0$ である.
・ $S$ の $i$ 文字目を $S_i$ とすると,実行プログラムは $S_1,S_2,,,$ と左から順に読み込む.
・ プログラムが文字 'c' を読み込んだとき,スタックの一番上に整数 $x$ が追加される.
・ プログラムが文字 'w' を読み込んだとき,スタックの一番上に整数 $y$ が追加される.
・ スタックの上から $1$ 番目の要素を $a$ ,スタックの上から $2$ 番目の要素を $b$ とすると,プログラムが文字 'C' を読み込んだとき,スタックから $a,b$ を取り出しスタックの一番上に $a + b$ を追加する.
・ スタックの上から $1$ 番目の要素を $a$ ,スタックの上から $2$ 番目の要素を $b$ とすると,プログラムが文字 'W' を読み込んだとき,スタックから $a,b$ を取り出しスタックの一番上に $a - b$ を追加する.
・ プログラムが読み込む文字列がなくなったとき,プログラムはスタックの一番上の整数 $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$
$0 \le x,y,z \le 100000000$
出力
$S$
$S$ はCwwの$z$を出力するソースコードで,$1 \le |S| \le 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$ を取り出し, $9-2 = 7$ を追加 [7]
よって,ソースコード "cwwCwCW" はスタックに残った 7 を出力します.
サンプル3
入力
42 72 88
出力
NO
制約の元では正解のソースコードを作成することができないので,
代わりに "NO"を出力します.
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。