No Programming, No Life

プログラミング関連の話題や雑記

お題:階層のナンバリング

プログラミングお題の一覧はこちら

※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。

説明

以下例のように、カンマと1で階層を表現するデータ入力がある。
階層ごとに出現順にインクリメントしナンバリングした結果を出力したい。
以下の条件に従い、結果を出力するプログラムを書け。
※条件適切にエラー処理を行うこと

<条件>
・入力の一行の中で1は一回のみ出現すること(二回以上の出現はエラー)
・ある行の階層は、直前の行の階層+1を超えないこと(超えた場合エラー)
・ある階層より上位の階層がインクリメントされた場合、それより下層は1にリセットすること
・空行があった場合、空行のまま出力すること

<入力例>
1
,1
,,1
,,1

,1
,,1
1
1
,1

<出力例>
1
,1
,,1
,,2

,2
,,1
2
3
,1

<エラー入力1>
1
,1
,1,1

<エラー入力2>
1
,1
,,,1