1. Олимпиада по этим правилам проводится в течении всего времени
существования сайта.
2. Имеется определенный набор задач, предлагаемых участникам. Этот набор
регулярно пополняется.
3. Каждая задача "стоит" 1 балл. Решение задачи защитывается тогда, когда оно
"пройдет" все тесты. (Положения "прохождения" тестов см. в правилах
проведения IOI олимпиады).
4. Участник может отсылать каждую задачу сколько угодно раз.
5. Место в олимпиаде определяется:
6. Программа участника должна считывать данные со стандартного входа(клавиатура)
и выдавать результаты на стандартный выход (экран), если другое не оговорено
в условии задачи.
Пример задачи и ее решение на Паскале:
Условие:
На вход вашей программы подается последовательность целых чисел, каждое
из которых не больше чем 2000. Ваша задача посчитать сумму чисел этой
последовательности. Известно, что она не превышает 100 000 000.
Решение:
program First;
var
x : integer;
Sum : longint;
begin
Sum:=0;
while not eof(input) do
{пока не конец входа}
begin
ReadLn(X);
{оператор идентичен readln(input, x);}
Sum:=Sum+x;
end;
WriteLn(Sum);
{оператор идентичен writeln(output, Sum);}
end.
Работа со стандартным вводом очень напоминает работу с файлами, в которой
входной файл имеет имя input, а выходной output.
Опишем теперь возможные способы проверки этой задачи.
Допустим, запускаемый файл называется first.exe
1) Мы можем осуществлять ввод данных с клавиатуры, тогда
Запускаем first.exe.
Программа ожидает ввода с клавиатуры. Вводим последовательность
2
4
-1
3
45
Для того, чтобы закончить ввод нужно нажать клавиши Ctrl-Z.
Наша программа воспримет это как конец входа: eof(input) станет равен TRUE,
и, соответственно, мы выйдем из цикла и выдадем ответ
53
2) Мы можем перенаправить стандартный ввод и вывод в файлы.
Тогда программа будет запускаться с такими параметрами:
first.exe <input.txt >output.txt
где файл input.txt содержит тестовую последовательность чисел, а в файле
output.txt мы ожидаем увидеть ответ на данный тест.
input.txt output.txt
------------ -------------
2 | |53 |
4 | -------------
-1 |
3 |
45 |
------------
|