プログラムのお勉強 続き

Sランクの嘘つき探しやってみたけど、まずアプローチがわからん・・・
A->Bで言及している場合、それがウソかホントかわからないけどとりあえずAが確定するとBも確定する、だから必要ビット数は1減る
A->B->Cと言及するとこれも同じ
まずこの関連図を作って必要ビット数を絞っていこうと思ったわけ

でも
A-正直->B、B-正直->Aの場合、A=正直,B=正直かA=ウソ,B=ウソなので2択
A-ウソ->B、B-ウソ->Aの場合、A=ウソ,B=正直かA=正直,B=ウソなので2択は変わらず
A-正直->B、B-ウソ->Aの場合、A=ウソ,B=正直の1択になり
A-ウソ->B、B-正直->Aの場合、A=正直,B=ウソの1択になる
このA->B、B->Aが不一致のばあいを探していけばいい気がする

と思ってチャレンジした結果

悲惨な結果(T-T)


最短距離を測るのは簡単だったけど大容量ケースで敗北
とりあえず組んだロジックがスターと地点を1として上下左右に+1した値を放り込む
これをゴールとか関係なく全マスに伸ばしていく
その時延ばした先に自分より若い数字がはいってりゃスキップ、自分のが若けりゃ上書き
最後にゴール地点を調べて数字を-1して出力って感じ

一応リベンジでクリアしたった、くやちい