2010-04-22 54 views
1

在IOI編程競賽中有時會看到被動的任務。與批處理任務不同,被動解決方案從另一個程序輸入並輸出。該程序通常「查詢」法官程序一定次數,然後輸出最終答案。如何爲編程競賽創建反應式任務?

一個例子

客戶程序接受線一個接一個,並簡單地呼應回來。當它遇到「完成」的行時,它立即存在。

在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 

我無法寫法官的程序,並讓它判斷客戶端程序。如果有人能爲我的例子寫一篇評委程序,我將不勝感激。

回答

0

您可以通過命令提示符讓程序相互通話。

在Windows中,你會寫:

java judge | java client 

所以它的管道judge輸出到client輸入。

也就是說,只要judge正在寫入標準輸出流(它會)和客戶端從標準輸入流(它是你的)讀取的,那麼它將起作用。

+0

是的。問題是,客戶端還需要*寫*輸出給裁判,所以它不完全是一種方式。 – directx 2010-04-22 12:58:21