Difference between revisions of "Задача:interactive"

From EjudgeWiki
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Виды задач]]/[[Задача:interactive]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Виды задач]]/[[Задача:interactive]]
  
В интерактивных задачах программа участника не читает входной файл и пишет в выходной файл, а взаимодействует со специальной программой, называемой [[программы-интеракторы|программой-интерактором]].
+
В интерактивных задачах программа участника не читает входной файл и пишет в выходной файл, а взаимодействует со специальной программой, называемой [[программы-интеракторы|программой-интерактором]]. Программа-интерактор может реализовывать различные стратегии поведения в зависимости от поведения тестируемой программы.
 +
 
 +
Для организации взаимодействия тестирующая система создает два неименованных канала ([http://linux.die.net/man/7/pipe pipe]), один в направлении от тестируемой программы к программе-интерактору, другой в направлении от программы-интерактора к тестируемой программе. Стандартный ввод тестируемой программы перенаправлен на чтение из второго канала, а стандартный вывод тестируемой программы перенаправлен на запись в первый канал. Для программы-интерактора стандартный поток ввода и стандартный поток вывода перенаправляются в обратном направлении.
 +
 
 +
Тестирующая система запускает параллельно тестируемую программу и программу-интерактор и ждет завершения <b>обеих</b> программ.
 +
 
 +
Дальнейшее поведение тестирующей системы определяется по совокупности статусов завершения тестирующей программы и программы-интерактора. Проверки перечислены в порядке их выполнения.
 +
 
 +
* Программа-интерактор превысила ограничение на максимальное время выполнения и была снята с выполнения из-за этого. Фиксируется вердикт [[CF]].

Revision as of 12:53, 18 February 2013

Навигация: Главная страница/Система ejudge/Использование/Виды задач/Задача:interactive

В интерактивных задачах программа участника не читает входной файл и пишет в выходной файл, а взаимодействует со специальной программой, называемой программой-интерактором. Программа-интерактор может реализовывать различные стратегии поведения в зависимости от поведения тестируемой программы.

Для организации взаимодействия тестирующая система создает два неименованных канала (pipe), один в направлении от тестируемой программы к программе-интерактору, другой в направлении от программы-интерактора к тестируемой программе. Стандартный ввод тестируемой программы перенаправлен на чтение из второго канала, а стандартный вывод тестируемой программы перенаправлен на запись в первый канал. Для программы-интерактора стандартный поток ввода и стандартный поток вывода перенаправляются в обратном направлении.

Тестирующая система запускает параллельно тестируемую программу и программу-интерактор и ждет завершения обеих программ.

Дальнейшее поведение тестирующей системы определяется по совокупности статусов завершения тестирующей программы и программы-интерактора. Проверки перечислены в порядке их выполнения.

  • Программа-интерактор превысила ограничение на максимальное время выполнения и была снята с выполнения из-за этого. Фиксируется вердикт CF.