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