GCJ 2013 Round 2 C

最小限の依存関係(大小関係)をチェック後、依存のないものから順に値を確定させる。辞書順最小縛りがあるので前の位置優先。
順位に同じ値があるときは直前の位置の値より小さくなる(大きいと次にでた値が繋がるので同じ順位にならない)ので直前の位置の値はチェック中の値より大
きい(依存する)。
一つ小さい値の少なくとも一つ依存するので、その同一順位の最小の値(同一順位は前述どおり前より小さい)である最も近い位置の値より大きい(依存する)
。
数値長分だけ以下を繰り返す。
依存がない(length==0)から順に値を確定させ、各位置の確定した位置の依存を切る。
length==0がない場合は循環参照している場合なのでありえない。