Всероссийская олимпиада по информатике
им. Мстислава Келдыша для школьников 5-8 классов

Вход в соревнование

Документация на разные языки программирования
Примеры реализации ввода-вывода
Ниже приведены замечания по разным языкам программирования и приведен пример программы, вычисляющую сумму двух целых чисел, считываемых со стандартного ввода и выводящую результат на стандартный вывод, с использованием 64-битных целых чисел. Входные числа записаны в одной строке.
Python версии 3
a, b = map(int, input().split())
print(a + b)
С
#include <stdio.h>

int main()
{
  long long a, b;
  scanf("%lld%lld", &a, &b);
  printf("%lld\n", a + b);
  return 0;
}
C++
#include <iostream>

using namespace std;

int main()
{
  long long a, b;
  cin >> a >> b;
  cout << a + b << "\n";
  return 0;
}
Pascal
var a, b: int64;
begin
    read(a);
    read(b);
    writeln(a + b);
end.
Mono C#
using System;
using System.IO;
class MainClass
{
  static void Main()
  {
    string[] tokens = Console.ReadLine().Split();
    long a = long.Parse(tokens[0]);
    long b = long.Parse(tokens[1]);
    Console.WriteLine("{0}", a + b);
  }
}
Java
import java.io.*;

public class Main
{
  public static void main(String args[]) throws Exception
  {
    Scanner in = new Scanner(System.in);
    long a, b;
    a = in.nextLong();
    b = in.nextLong();
    System.out.println(a + b);
  }
}
Реализация быстрого чтения на Java
import java.io.*;
import java.util.*;

public class Sample {

    public void solve() throws IOException {
        long a = nextLong();
        long b = nextLong();
        System.out.println(a + b);
    }

    public void run() {
        try {
            br = new BufferedReader(new InputStreamReader(System.in));
            solve();
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(1);
        }
    }

    BufferedReader br;
    StringTokenizer in;
    PrintWriter out;

    public String nextToken() throws IOException {
        while (in == null || !in.hasMoreTokens()) {
            in = new StringTokenizer(br.readLine());
        }
        return in.nextToken();
    }

    public int nextInt() throws IOException {
        return Integer.parseInt(nextToken());
    }

    public double nextDouble() throws IOException {
        return Double.parseDouble(nextToken());
    }

    public long nextLong() throws IOException {
        return Long.parseLong(nextToken());
    }

    public static void main(String[] args) throws IOException {
        new Sample().run();
    }

}
Работа с тестирующей системой

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

Возможные результаты проверки решений указаны в таблице.

Результат
Ошибка компиляции
Что это означает
Исполняемый файл не был создан при компиляции. В этом случае запуск решения на тестах не производится.
Возможная причина
  • Синтаксическая ошибка в программе;
  • Неверно указан язык программирования;
  • Решение на Visual C++ использует нестандартные возможности языка, например, директиву #include<stdafx.h>, функцию itoa или исключённую из стандарта функцию gets.
Результат
Нарушение правил безопасности
Что это означает
Программа нарушает правила олимпиады
Возможная причина
  • Нарушение правил олимпиады;
  • Ошибка в программе;
  • Вызов system("pause") в программах на C/C++.
Результат
Превышено максимальное время работы
Что это означает
Программа превысила лимит времени работы
Возможная причина
  • Неэффективное решение;
  • Ошибка в программе (программа зацикливается);
  • Ошибка в считывании данных (программа ожидает ввода данных, хотя входной поток данных уже закончился);
  • Программа ожидает от пользователя нажатия на клавишу после вывода ответа.
Результат
Превышен лимит по памяти
Что это означает
Программа превысила лимит используемой памяти
Возможная причина
  • Неэффективное решение;
  • Ошибка в программе;
  • Бесконечная (или очень большая) рекурсия;
  • Ошибки при работе с указателями в C/C++ также могут диагностироваться, как "Превышен лимит по памяти"
Результат
Ошибка выполнения
Что это означает
Программа совершила некорректное действие в ходе исполнения
Возможная причина
  • Некорректное арифметическое действие (деление на ноль, извлечение корня из отрицательного числа, переполнение переменной).
  • Ошибка при работе с памятью и структурами данных (выход за границы массива, обращение к некорректным указателям, удаление несуществующего элемента из структуры данных, переполнение стека, превышение лимита доступной памяти);
  • Нарушение правил олимпиады (работа с файлами, вызов сторонних программ);
  • Бесконечная (или очень большая) рекурсия;
  • Синтаксические и иные (например, обращение к несуществующей переменной) ошибки в программах на Python и других интерпретируемых языках;
  • В программе явно указан ненулевой код возврата.
Результат
Неправильный формат вывода
Что это означает
Вывод программы не соответствует условию задачи
Возможная причина
  • Программа выводит ответ в формате, не соответствующем условию задачи;
  • Программа не вывела ничего;
  • Программа выводит результат в файл, а не на стандартный вывод;
  • Ошибка в программе (например, программа вывела ответ дважды);
  • В программе есть отладочный вывод;
  • Программа выводит лишние сообщения типа "Введите число" или "Ответ".
  • Программа должна вывести числа в одной строке через пробел, а вывела их в разных строках или наоборот;
  • Программа должна вывести целое число, а выводит действительное число, запись которого содержит десятичную точку, из-за того, что программа использует действительный тип данных вместо целочисленного.
Результат
Неправильный ответ
Что это означает
Программа вывела неправильный ответ
Возможная причина
  • Неверный алгоритм решения;
  • Ошибка в реализации алгоритма решения.
Результат
OK
Что это означает
Программа выдала правильный ответ на этом тесте
Возможная причина
  • Программа корректна;
  • Решение неверное, но у жюри слабая система тестов.
Результат
Пропущен
Что это означает
Запуск программы на данном тесте не производился
Возможная причина
  • Предыдущий тест данной подзадачи не пройден;
  • Пройдены не все тесты подзадач, необходимых для проверки данной подзадачи.
Результат
Ошибка проверяющей системы
Что это означает
Тестирущая система не смогла выполнить проверку решения
Возможная причина
  • Не волнуйтесь, это будет скоро исправлено.