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]