KOJ

Kochi University of Technology Online Judge

初めての方へ

KOJ とは

KOJ はプログラミングの問題をオンラインで解き、それを採点するシステムです。
このシステムは、一般的にオンラインジャッジと呼ばれます。

オンラインジャッジには様々なサイトがありますが、KOJ は出力データとソースコードを提出する形式を採用しています。KOJ にある入力データをダウンロードし、その出力を KOJ へアップロードすることで採点されます。

使用するプログラミング言語に制限はありません。
あなたが好きな言語で解いて構いてください。

問題の解き方

まずは、解きたい問題を選んでください。
問題文で求められているプログラムを作成してください。
問題には入力と出力がありますが、標準入出力を使うプログラム作成してください。

問題を解いたら、各問題の結果ページから入力ファイルをダウンロードしてください。
入力ファイルを、あなたが作成したプログラムで処理し、出力ファイルを作成します。
その出力ファイルを、KOJ へ提出してください。

出力ファイルが正しい場合、「正解」と表示されます。
そうでない場合、プログラムが間違っているので、修正してまた挑戦してみましょう。

C言語での解答例

以下は、問題0 をC言語で解く場合の解答例です。

この問題では、複数のデータセットが与えられます。
データセットとは、プログラムの処理単位で、データセットごとに入力をし、出力を行います。
今回は、2つの整数が1つのデータセットとなっています。

この問題では、データセットごとに1つの整数を出力します。
つまり、2つの整数を読み込み、1つの整数を出力する動作を、データセットの最後まで繰り返せばいい訳です。

プログラムは、標準入出力を使うように書くと便利です。
標準入出力を使ったプログラムを実行する際に、リダイレクションを用いることで、ファイルから入力を行ったり、ファイルへ出力をすることができます。

例えば、問題0 をC言語で解くと、次のようになります。

#include <stdio.h>

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

データセットの終了条件は $A = B = 0$ ですが、$0 < A, B$ であることが保証されているため、片方だけ調べるだけでデータセットの終了を判定できます。

プログラムが完成したら、入力ファイルをダウンロードし、出力ファイルを作成します。
問題の結果ページから、入力ファイルをダウンロードしてください。

実行ファイルを「a.out」とした場合、次のように端末から実行することで、出力ファイルを生成できます ($ は入力しません)。

$ ./a.out < 0-small.in > 0-small.out

上のコマンドを実行すると、プログラムの出力が 0-small.out に書きだされます。
0-small.in は実際の入力ファイル名に変更してください。

出力ファイルが作成できたら、ソースファイル (*.c) と出力ファイルを結果ページから提出してください。正解かどうかが判定されます。