#chokudai今日の一問を解く #1 ABC026C – 高橋君の給料

2019年8月23日

chokudaiさんが面白そうな事言っていた。

折角なので乗っかりたい。

モチベーション維持のために、勝負形式にしたいと思う

勝利条件

  • 300~500点代くらいの問題全部AC(そもそもchokudaiさんが出せる問題がなくなるパターン)
  • chokudaiさんが今日の一問の投稿をしなくなるまで解き続ける(このことを当ブログでは"完走"ということにします)

敗北条件

  • 一週間くらい放置

だいたいこんな感じで。勝った負けたとかでなんもないです。

解く

とりあえず8/20投稿の分

C - 高橋君の給料

この問題は木構造パッと作れば簡単に解けます。親のindexとかを違う場所に保管する必要がないのがキモです。

社員番号をインデックスとしてconnection[i]みたいな感じで接続されているノード番号を取り出すようなリストを作ればほぼ勝ちです。

N=20なので肩の力を抜いて実装しましょう。接続されているノード番号を取り出した後、1個ずつforで上司か否か判別して、部下のみのリストを作ればあとはmax()とかmin()とかで簡単にその社員番号の給料が出せますね。

あとこういう問題は 求められることが確定している 所から解くべきです。
今回の問題では、一番大きい社員番号は給料が確定で1なので社員番号を大きい方から求めていけば簡単に社員番号1の給料を決定できます。

というわけでこんな感じのコードになりましたとさ

以上