トップ 一覧 Farm 検索 ヘルプ RSS ログイン

2002dbの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!Problem B: Pile Up! 積み上げろ!

1,2,3,・・・,mと番号が付いてる箱がある。「どの番号の箱をどの番号の箱の上に置け」という指示が与えられる。操作を全て行うと、積み上げた箱の列ができる。積み上げた数が小さい順に表示する。

「AをBに置け」という指示の時、次の場合がある。
* AとBが違う列にある場合
** Aの上に何か乗っている場合は、乗っているものをすべて床に置いてからAを持ち上げる。
** Bの上に何か乗っている場合は、そのまま一番上にAを置く。
* AとBが同じ列にある場合
** AがBの下にある場合は、Aの上のものをすべて床に下ろしてから、AをBの上に置く。
** AがBの上にある場合は、命令を無視する。
** 「床に置け」という指示は「A 0」という命令になる。

!入力
*まず、箱の数m
*次にどの箱(I)を、どの箱(J)の上に置けと言う指示。IとJが0なら終了。

各列と、列にどの箱が置いてあるか、というデータ構造を2次元配列で表現し、命令どおりの処理を行う。処理が終わったら各列の個数を求め、ソートして小さい順に表示する。無駄な処理があるかも。解けてないことが判明。
!!解答例
各列と、列にどの箱が置いてあるか、というデータ構造を2次元配列で表現し、命令どおりの処理を行う。処理が終わったら各列の個数を求め、ソートして小さい順に表示する。

解答例?[[2002db1.c]]
*河原 [[2002db1.c]] 無駄な処理があるかも。解けてないことが判明。