2014年12月14日日曜日

情報オリンピックを受けてみました

今日(2014/12/14)の13時から3時間の間に問題を解く情報オリンピックの予選を受けてみました。
こういう問題形式の競技に出るのは今回が初めてでした。
予選はネット上で行われ、6問の問題にそれぞれ5つの入力ファイルが用意されています。入力に対する出力とプログラムのコードを提出して、それが採点されるようです。
どんなものかと気になったので試しに受けてみた程度です。他の人がどのくらい解けたのか分かりませんが、結果はあまりよろしくないみたいです。問1~3と問5の入力1だけ終わりました。
どんな問題が出て、何が難しかったかを簡単にまとめます。

まず問題の簡単な説明から。
  1. 水道料金を求める問題
  2. 番号(人)を当てるゲームの合計得点を算出する問題
  3. 各地点での天気を調べる問題
  4. 町間の移動にかかる最低限の労力を求める問題
  5. 砂場の城が波で崩れなくなる(安定する)までの波の数を求める問題
  6. 財宝の山分けで、ある条件を満たした上でBさんが最も満足するパターンを求める問題
対して解けなかったわけですが、それぞれ何が難しかったかを書いておきます。
1.問題文通りに実装すれば難しいものではありません。
2.二次配列を使いました。そこらへんとループを問う問題かと思われます。
3.文字の入力を問う問題。これも特に問題は無い。
4.総当りを使うのが手っ取り早いかと思われます。友達は総当りで解いていました。
5.問題文をじっくり読んで実装する問題。入力2から計算量が異常に多くなり計算が終わりませんでした。そこをどう最適化するかを問う問題かと思われます。
6.これも総当りで解けそうでしたが時間が足りませんでした。

今回が初挑戦ということもあるのか、少ししか解けなかったのですが、こういった競技
がどのようなものかを知ることができました。

言語は自由なのですが、C言語を使いました。実はC言語あまり使ったことがないので外部ライブラリではprintfとscanfしか使ってません。
アルゴリズムよりもC言語を先に勉強した方がいいかな。
とにかく、次挑戦するときはもう少し勉強して4問完全くらいは解きたいです。

---------------------- 追記(2014/12/19) -----------------------
 数日前に結果が公開されましたので一応書いておきます。
結果は320点でランクはBでした。こういうのは初めてなのでこれくらいでいいかな、という感じです。
一緒に受けた友人は420点でAランク、全国大会に行ってくるようです。ぐぬぬ。

0 件のコメント:

コメントを投稿