Codeforcesに初参戦しました。

Codeforcesってなに

いわゆる、プログラミングコンテスト。以下の特徴があります。

  • 2時間で5題問題を解く
  • ロシア発祥
  • 月に2、3度の頻度で開かれる
  • 利用できる言語が豊富

    • GNU C++ 4
    • GNU C 4
    • MS VS C++ 2005
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2.6
    • Java 6
    • Ruby 1.9
    • Python 2.7
    • PHP 5.3
    • Haskell GHC 6.12
    • F# 2.0
    • OCaml
    • Scala

コンテストに参加するまで

Codeforcesの登録方法

まずは、Webページにアクセス

Gmailアカウントがあれば、それで認証して終了。わぁ、登録カンタン。

コンテストへの参加方法

コンテストが近くなると、トップページに開催案内がでる。クリックして登録完了。わぁ、登録カンタン。

コンテストに参加してみて

問題文は、すべてWebで公開されています。こんな感じ。

テスト画面でコーディングします。エディタがあり、ここでコードを作成します。Inputを与えて、「Run」を押して、テストを実施。Outputを確認します。

解答が完成したら、SUBMITタブを選択。解答を提出します。

標準入力、標準出力の扱い方について

初め、この入力と出力が意味不明だった。データが扱えないので、なにもできない!

Inputは標準入力, Outputは 標準出力なので、まずはこれを変数に格納することに一苦労。

C++ での Inputの扱い方

C++では、cinを使って、Inputを変数に格納します。

たとえば、Inputが

1 2

のときは、

cin >> a >> b;

のようにすると、値が変数に格納できます。スペースで区切られたものを、それぞれの変数に格納します。

cinは一回で1行を読みこむので、複数行にまたがるときは、cinを何度も書いて読みこむ。

C++ での Outputの扱い方。

coutを使って、標準出力に書き出します。

たとえば、rsltをOutputに書き出す場合は、

cout << rslt << endl;

当日の感想

問題のInputとOutputの扱い方がわからずに、それだけで30分おわってしまった。

エディタからの解答作成はちょっと面倒だっだ。TopCoderのようにEclipseのPluginがあればいいのたけれども、ないみたい。

関数の型も、テストも自分で考えるので、TopCoderよりも不親切にも感じた。

当日解いた問題

これは、システムテストで落とされました。。。初参戦にして、惨敗。。。(ノД`)

Codeforces Round #192 (Div. 2) A

[gist id=6045503]