1

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

ジャッジプログラムを書いてクライアントプログラムをジャッジするのに苦労しています。誰かが私の例のジャッジプログラムを書いてくれたら幸いです。

4

1 に答える 1

0

コマンドプロンプトを介して相互に通信するプログラムを取得します。

Windows では、次のように記述します。

java judge | java client

したがって、 の出力judgeを の入力にパイプしていますclient

つまりjudge、標準出力ストリームに書き込んでいて (それが可能です)、クライアントが標準入力ストリーム (あなたのもの) から読み込んでいる限り、それは機能します。

于 2010-04-22T04:48:07.850 に答える