Google code jam 2018 Practice Session 2018

Updated:

Google code jam 2018 Practice Session 2018

とにかく GCJ は苦手なコンテストなので、全く頑張る価値を見出せない。 qual だけ通して round 1 は参加できたら参加する感じで行こうと思う。

practice は過去問でできているようだ。もう解答を書いてしまおう。

Solutions

Number Guessing

二分探索するだけ。

Senate Evacuation

案外難しい。過半数を得ないようにするためには、

    if (get<0>(V[0]) > get<0>(V[1]) || (sum % 2 == 1 && get<0>(V[0]) == get<0>(V[1])))
    {
      get<0>(V[0])--;
      sum--;
      ans.push_back(get<1>(V[0]));
    }
    else
    {
      get<0>(V[0])--;
      get<0>(V[1])--;
      sum -= 2;
      ans.push_back(get<1>(V[0]) + get<1>(V[1]));
    }

のようにする。

Steed 2: Cruise Control

一番到着時刻が遅い馬に合わせてゴールするだけ。

Bathroom Stalls

真ん中を占拠すると、区間を 2 分割することができる。同じ長さの区間は同じ結果を与えるので、 map で管理して一気に処理すればよろしい。

Others

言語選択を間違えないようにする。

徹底的にやるなら auto-submitter を作るべきだが、どうせ敗退するコンテストを一生懸命頑張るのは馬鹿馬鹿しいと思う。