IOI プログラミング コンテストでは、リアクティブ タスクが見られることがあります。バッチ タスクとは異なり、リアクティブ ソリューションは別のプログラムから入力を受け取り、それを出力します。プログラムは通常、ジャッジプログラムに特定の回数「クエリ」を実行し、最終的な回答を出力します。
例
クライアントプログラムは行を 1 行ずつ受け取り、単純にエコー バックします。「done」の行に遭遇すると、すぐに存在します。
Java のクライアント プログラムは次のようになります。
import java.util.*;
class Main{
public static void main (String[] args){
Scanner in = new Scanner(System.in);
String s;
while (!(s=in.nextLine()).equals("done"))
System.out.println(s);
}
}
ジャッジプログラムは、クライアント プログラムからの入力と処理の出力を提供します。この例では、定義済みの入力をフィードし、クライアント プログラムがそれを正しくエコー バックしたかどうかを確認します。
セッションは次のようになります。
Judge Client
------------------
Hello
Hello
World
World
done
ジャッジプログラムを書いてクライアントプログラムをジャッジするのに苦労しています。誰かが私の例のジャッジプログラムを書いてくれたら幸いです。