Как выглядит решение олимпиадной задачи

Решением задачи является программа на одном из допустимых языков программирования, которые поддерживаются тестирующей системой. Тестирующая система подает программе данные на стандартный ввод и ожидает от программы вывода результата на стандартном выводе. В «обычных» условиях запуска программы, когда она пишется в среде разработки и запускается на компьютере участника олимпиады, стандартный ввод соответствует вводу данных с клавиатуры а стандартный вывод — выводу на экран. То есть программа должна для считывания данных использовать стандартные функции ввода-вывода языка программирования, например, read и write в Паскале, input и print в бейсике, scanf и printf в C, cin и cout в C++, input и print в Питоне и т. д. В этом случае в тестирующей системе программа будет запущена с перенаправленным вводом-выводом для возможности автоматической проверки.

Решение не должно использовать никакие графические функции языка программирования и операционной системы, то есть нельзя осуществлять ввод-вывод через формы, окна диалогов и т. д., поскольку проверка происходит без участия человека, который будет вводить входные данные в формы. То есть создаваемое приложение должно быть простым «консольным» приложением, а не графическим приложением, использующим окна.

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

Не надо проверять входные данные на корректность — ограничения в условиях задачи означают, что во всех тестах, на которых будет проверяться ваша программа, будут выполнены данные ограничения, то есть не надо писать команды вроде if K > 15 then writeln('Введите правильное число') — это не является ошибкой, но просто бессмысленно.

При выводе программы не надо выводить ничего лишнего, если требуется вывести два числа, то необходимо вывести только два числа (разделив их при этом пробелом или переходом на новую строку в зависимости от условий задачи). Не нужно выводить никаких дополнительных сообщений типа «Ответ».

В конце программы часто ставят дополнительную задержку — например, ожидают ввода чего-нибудь при помощи функции Readln в Паскале или вызывают функцию system("pause") в языке C — это также не требуется, т.к. программа должна сразу же завершить свою работу, не дожидаясь какого-либо действия от человека, так как в автоматической системе этого не требуется.

Список допустимых решений задач пробного тура на разных языках:

 

 

Программы на Free Pascal / Pascal ABC.NET / Delphi

 

Задача A («Сумма чисел») Задача B («Переворот последовательности»)
var a, b: longint; begin read(a, b); write(a + b); end.   var n, i: integer; a: array [1..30000] of longint; begin read(n); for i:= 1 to n do read(a[i]); for i:= n downto 1 do write(a[i], ' '); end.
  1. Программы на языке Python 2
Задача A («Сумма чисел»)
print sum(int(x) for x in raw_input().split())
Задача B («Переворот последовательности»)
raw_input() print " ".join(reversed([x for x in raw_input().split()]))
  1. Программы на языке Python 3
Задача A («Сумма чисел»)
print(sum(int(x) for x in input().split()))
Задача B («Переворот последовательности»)
input() print(" ".join(reversed([x for x in input().split()])))
  1. Программа на Free Basic (в режиме совместимости с Qbasic)
Задача A («Сумма чисел»)
DIM inf AS STRING DIM a, b AS INTEGER   INPUT "", inf a = VAL(LEFT$(inf, INSTR(inf, " "))) b = VAL(RIGHT$(inf, LEN(inf) - INSTR(inf, " "))) PRINT a + b

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: