Difference between revisions of "Задача:interactive"
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.