読者です 読者をやめる 読者になる 読者になる

c-bata web

@c_bata_ のメモ。python多め

アルゴリズム勉強の為にPOJをやってみる

はじめに

大学編入試験の専門科目でプログラミングの問題もあるので、↓の書籍に沿いながらプログラミングコンテストの問題とかに挑戦してみる。

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

POJの利用

Web上に過去のプロコンの問題を自動採点してくれるオンラインジャッジというシステムがあるそうです。POJ(PKU Online Judge)もその一つ。

まずはアカウントを作成する。ちなみに登録時には名前とパスワード以外にもSchoolとEmailを聞かれるけど入力しなくていい。

C++で挑戦してみる

編入試験ではC言語の問題が出るみたいだけど、ライブラリも多いし楽ができるC++を使ってみる。C++は書いたこと無いけどソース見た感じ全然問題無さそう。

C++gccを使って↓みたいにコンパイルできるらしい。(参考)

g++ -Wall main.cpp

まずはPOJの問題一覧の一番上にある「A+B Problems」をやってみる。

Hint

Q: Where are the input and the output?

A: Your program shall always read input from stdin (Standard Input) and write output to stdout (Standard Output). For example, you can use 'scanf' in C or 'cin' in C++ to read from stdin, and use 'printf' in C or 'cout' in C++ to write to stdout.

標準入力(scanf)で2つの整数を読み込んで標準出力(printf)すればいいみたい。

#include <cstdio>

int main()
{
    int a,b;
    scanf("%d %d",&a, &b);
    printf("%d\n",a+b);
    return 0;
}

問題文の一番下のSubmitというリンクから提出できる。 Languageで「C++」を選択。テキスト欄にソースをコピペしてSubmitを押したらOK。

f:id:nwpct1:20140318000424p:plain

実行結果が表示される。「Accepted」とくれば正解。

終わりに

以上、POJの基本的な流れを勉強してみました。 これから色んな問題に挑戦してみます。