Реагирующее задание иногда встречается на соревнованиях по программированию IOI. В отличие от пакетных задач, реактивные решения принимают входные данные из другой программы, а также выводят ее. Программа обычно «запрашивает» программу судьи определенное количество раз, а затем выводит окончательный ответ.
Пример
Программа client принимает строки одну за другой и просто возвращает их обратно. Когда он встретил строку с «готово», он существует сразу.
Клиентская программа на 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
У меня проблемы с написанием программы судьи и с тем, чтобы она судила программу клиента. Буду признателен, если кто-нибудь напишет программу для моего примера.