Памятка участникам олимпиады

Правила проведения школьного тура олимпиады по информатике

1. Участник олимпиады может использовать допустимые языки программирования (см. список ниже). Разные задачи можно решать на разных языках программирования. Файл с решением не должен содержать ссылки на внешние модули и файлы, не входящие в стандартный состав используемого компилятора.

Разрешенные языки и компиляторы:

Конкретные версии компиляторов указаны в тестирующей системе.

2. Решением задачи является исходный текст программы, составленный на одном из вышеперечисленных языков программирования. Все задачи решаются с использованием файлового ввода и вывода данных: исходные данные читаются из входного файла, результат записывается в выходной файл. Следует обратить особое внимание на то, что имя файла должно совпадать с указанным в условии задачи с точностью до регистра.

Решение участника должно считывать исходные данные из входного файла так, как это указано в условии задачи. Запись ответа должна производиться в выходной файл в соответствии с требованиями, описанными в условии задачи. Необходимо точно соблюдать форматы ввода/вывода, описанные в условии каждой задачи. Решения с неправильно организованным вводом/выводом данных не оцениваются, но засчитываются за попытку.

Пример правильно оформленной программы.

Входной файл: input.txt

Выходной файл: output.txt

Задача. Найти сумму двух введенных чисел.

Формат файла входных данных: В единственной строке входного файла расположено два числа, по модулю не превосходящие 32000.

Формат файла выходных данных: В выходной файл вывести сумму данных двух чисел.

Решение на языке Pascal, файловый ввод-вывод

var a,b : longint;
begin
    assign(input, 'input.txt');     
    assign(output, 'output.txt');
    reset(input);
    rewrite(output);
    read(a,b);
    write(a+b);
    close(input);
    close(output);
end.

Решение на языке Pascal, стандартный ввод-вывод

var a,b : longint;
begin
    read(a,b);
    write(a+b);
end.

Решение на языке C++, файловый ввод-вывод

#include <stdio.h>
int main ()
{
    int a, b;
    freopen ("input.txt", "r", stdin);
    freopen ("output.txt", "w", stdout);
    scanf ("%d %d", &a, &b); // cin >> a >> b;
    printf ("%d", a+b);      // cout << a+b;
    return 0;
}

Решение на языке C++, стандартный ввод-вывод

#include <stdio.h>
int main ()
{
    int a, b;
    scanf ("%d %d", &a, &b); // cin >> a >> b;
    printf ("%d", a+b);      // cout << a+b;
    return 0;
}

#include <fstream>

using namespace std;

int main ()
{
    int a, b;
    ifstream in("input.txt");
    ofstream out("output.txt");
    in >> a >> b;
    out << a+b;
    return 0;
}

Решение на языке Java

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(new FileInputStream("input.txt"));
        PrintWriter out = new PrintWriter(new FileWriter("output.txt"));
        int a = in.nextInt();
        int b = in.nextInt();
        out.print(a + b);
        out.close();
    }
}

Решение на языке BASIC

OPEN "input.txt" FOR INPUT AS 1
OPEN "output.txt" FOR OUTPUT AS 2
VAR a = 0, b = 0
INPUT #1, a, b
PRINT #2, a + b
CLOSE #1
CLOSE #2

Решение на языке Python

input = open('input.txt', 'r')
output = open('output.txt', 'w')
a, b = map(int, input.readline().strip().split())
output.write(str(a + b))

3. Каждое отправленное участником решение задачи будет проверено на наборе тестов, которые неизвестны участникам. За правильное прохождение каждого теста начисляется определенное количество баллов. В случае неверного ответа на тест, баллы за него не начисляются.

4. Время и объем используемой при работе программы памяти не должен превышать оговоренные в условии задачи значения. Решение, превысившее данные ограничения, считается неэффективным и за тест, в котором превышены ограничения, баллы не начисляются.

5. В задачах некоторое количество баллов может быть бонусом - то есть начисляться только если успешно пройдены все тесты.

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

7. Окончательным  решением каждой задачи считается решение,  набравшее наибольшее количество баллов. Жюри оставляет за собой право тестировать решения неограниченное число раз и выбрать наихудший результат.

8. Штраф за попытку в пробном туре составляет 0 баллов. Штраф в заочном и очном турах будет оговорен отдельно.

9. Итоговый балл за задачу определяется как суммарное количество баллов за успешно пройденные тесты

10. После определения победителей Олимпиады решения и тесты по задачам будут размещены на сайте организатора олимпиады (school9.perm.ru).

Порядок работы с тестирующей системой

  1. Попасть в тестирующую систему можно с сайта sсhool9.perm.ru или по прямой ссылке https://school9.perm.ru/gate.
  2. При входе в тестирующую систему нужно выбрать пункт «Олимпиады» и ввести логин и пароль. При этом будет доступен контест «Пробный тур».  Количество посылок на контест «Пробный тур» не ограничено. Далее там добавятся контесты заочного тура.
  3. В режиме «Монитор» отображаются все участники с текущими результатами.
  4. В режиме «Список задач» отображается список задач. Выбрав задачу, нужно внимательно прочитать условие, обратив внимание на ограничения по времени, памяти, формат входных и выходных условий.
  5. В режиме «Послать решение»  происходит отправка решения на тестирование удаленному серверу. Для этого нужно:
    • выбрать название задачи
    • выбрать компилятор
    • вставить подготовленное решение в окно
    • нажать кнопку «Отправить на тестирование»
  6. В режиме «Статус» можно просмотреть ход тестирования, обновляя экран по мере необходимости. Здесь же выдаются сообщения об ошибках.
  7. Информацию об ошибках можно посмотреть в разделе «Чаво» тестирующей системы.