Олимпиада «Наше будущее»
Отборочный тур 2024-2025

Посетите сайт олимпиады для получения дополнительной информации.

Содержание сайта

Вход в отборочные туры

Тур продолжается до 30 ноября 2024 года включительно.

Ссылка на тур для 8-9 классов: https://ejudge-msk.ru/cgi-bin/new-client?contest_id=30.
Ссылка на тур для 10-11 классов: https://ejudge-msk.ru/cgi-bin/new-client?contest_id=31.

Если вы не можете войти, проверьте, что

Правила проведения предметного тура

Что можно?

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

Можно использовать любые среды разработки, кроме функции GPT (например, нельзя использовать copilot и похожие инструменты).

В одной из задач тура для 10-11 класса вам необходимо работать с электронной таблицей. Для этого можно использовать любые средства (онлайн редакторы таблиц или программы).

Что нельзя?

Нельзя обсуждать решения задач до окончания тура. Запрещается публиковать свои решения до окончания тура.

Нельзя использовать любые нейросети для решения задач (ChatGPT или аналоги).

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

Нельзя списывать.

Формат отборочного этапа

В задачах 1-4 нужно написать только ответ. Тестирующая система сообщит вердикт - либо "Неправильный формат ответа", тогда в протоколе будет более подробная информация об этом. Либо "Принято на проверку", тогда ваш результат будет показан после окончания тура. Вы можете отправлять новый ответ несколько раз, при оценивании будет учитываться последний. Ваше решение получит от 0 до 100 баллов в зависимости от оптимальности и корректности.

В задачах 5-9 нужно написать код, который решает поставленную задачу. В протоколе решения будет написан вердикт тестирования на каждом тесте. В каждой задаче есть несколько тестов из условия и 20 скрытых тестов. За каждый успешно пройденный скрытый тест вы получите по 5 баллов. Итого максимальный балл за каждую задачу - 100.

Посмотреть свой текущий балл за тур вы можете в разделе «Итог» в Ejudge.

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

Описание возможных результатов проверки ваших решений, которые можно увидеть по ссылке «Просмотреть протокол».

Результат Что это означает Возможная причина

OK

Программа выдала правильный ответ на этом тесте
  • Программа корректна;
  • Решение неверное, но у жюри слабая система тестов.

Неправильный ответ

Программа вывела неправильный ответ
  • Неверный алгоритм решения;
  • Ошибка в реализации алгоритма решения.

Ошибка компиляции

Исполняемый файл не был создан при компиляции. В этом случае запуск решения на тестах не производится.
  • Синтаксическая ошибка в программе;
  • Неверно указан язык программирования;
  • Решение на Visual C++ использует нестандартные возможности языка, например, директиву #include<stdafx.h>, нестандартную функцию itoa или исключённую из стандарта функцию gets.
Превышено максимальное время работы

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

Превышен лимит по памяти

Программа превысила лимит используемой памяти
  • Неэффективное решение;
  • Ошибка в программе;
  • Бесконечная (или очень большая) рекурсия;
  • Ошибки при работе с указателями в C/C++ также могут диагностироваться, как "Превышен лимит по памяти"

Ошибка выполнения

Программа совершила некорректное действие в ходе исполнения
  • Некорректное арифметическое действие (деление на ноль, извлечение корня из отрицательного числа, переполнение переменной).
  • Ошибка при работе с памятью и структурами данных (выход за границы массива, обращение к некорректным указателям, удаление несуществующего элемента из структуры данных, переполнение стека, превышение лимита доступной памяти);
  • Нарушение правил олимпиады (работа с файлами, вызов сторонних программ);
  • Бесконечная (или очень большая) рекурсия;
  • Синтаксические и иные (например, обращение к несуществующей переменной) ошибки в программах на Python и других интерпретируемых языках;
  • В программе явно указан ненулевой код возврата.

Неправильный формат вывода

Вывод программы не соответствует условию задачи
  • Программа выводит ответ в формате, не соответствующем условию задачи;
  • Программа не вывела ничего;
  • Программа выводит результат в файл, а не на стандартный вывод;
  • Ошибка в программе (например, программа вывела ответ дважды);
  • В программе есть отладочный вывод;
  • Программа выводит лишние сообщения типа "Введите число" или "Ответ".
  • Программа должна вывести числа в одной строке через пробел, а вывела их в разных строках или наоборот;
  • Программа должна вывести целое число, а выводит действительное число, запись которого содержит десятичную точку, из-за того, что программа использует действительный тип данных вместо целочисленного.

Нарушение правил безопасности

Программа нарушает правила олимпиады
  • Нарушение правил олимпиады;
  • Ошибка в программе;
  • Вызов system("pause") в программах на C/C++.

Примеры реализации ввода-вывода

Ниже приведены примеры программы, вычисляющей сумму двух целых чисел с использованием 64-битных целых чисел. Входные числа записаны в двух разных строках.

Python

a = int(input())
b = int(input())
print(a + b)

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.

Java

В программах на Java не должно быть строки package.

import java.util.Scanner;

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);
  }
}

C#

using System;
using System.IO;
class MainClass
{
  static void Main()
  {
    long a = long.Parse(Console.ReadLine());;
    long b = long.Parse(Console.ReadLine());
    Console.WriteLine("{0}", a + b);
  }
}