Олимпиады по информатике в Москве

на сайте www.olympiads.ru

Новости Этапы всероссийской олимпиады Открытая олимпиада по программированию Московская олимпиада по информатике Кружки и сборы Командная олимпиада Странички других лет www.olympiads.ru
Региональный этап
Результаты:
9 класс
10 класс
11 класс
все классы
Условия, решения, тесты
Муниципальный этап
Условия, решения, тесты
Школьный этап
Условия, решения, тесты
Пригласительный этап
Условия, решения, тесты

Всероссийская олимпиада школьников по информатике в г.Москве, 2022/23 учебный год

Языки программирования, доступные в тестирующей системе

Тестирующая система муниципального этапа поддерживает следующие языки программирования:

  • Python версии 3.6.9.
  • C++, компилятор g++ версии 7.5.0 с поддержкой стандарта C++17.
  • PascalABC.Net версии 3.8.3.3129.
  • Java версии 17.0.1.
  • С# версии 4.0.30319.
  • Go версии 1.18.4.
  • Rust 1.59.0.
  • PHP версии 7.2.24.
  • Kotlin.
  • Кумир 2.1.0 (rc11).

Однако установка данных языков программирования во все места проведения не гарантируется. На компьютерах участников должен быть установлен язык программирования Python со средами разработки IDLE, Wing IDE, PyCharm, язык программирования C++ со средой разработки Code::Blocks. При указании в заявке на участие в муниципальном этапе, устанавливается PascalABC.Net, язык Java и среда IntelliJ IDEA, Visual C# и среда КуМир. Поддержка на компьютерах участников языков программирования Go, Rust, Kotlin и PHP не гарантируется.

Особенности формата ввода-вывода

При реализации программ необходимо обратить внимание на следующее.

Во входных данных все числа вводятся ровно так, как в примерах (как правило, каждое число вводится в отдельной строке).

Программа не должна выводить никаких сообщений, кроме того, что требуется вывести в условии задачи (как правило, это одно или несколько целых чисел), в том числе нельзя выводить сообщения вида “Введите число”.

Целые числа во входных и выходных данных записываются только цифрами, то есть недопустимо использование записи 1000000.0 или 1e6 вместо числа 1000000.

Примеры программ

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


Python

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

Pascal

var a, b: int64;
begin
    read(a);
    read(b);
    writeln(a + b);
end.

C++

#include <iostream>

using namespace std;

int main()
{
  long long a, b;
  cin >> a >> b;
  cout << a + b << "\n";
  return 0;
}

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

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

PHP

<?php
$A = fgets(STDIN);
$B = fgets(STDIN);
print $A + $B;
?>

Rust

use std::io;
fn main() {
    let mut a = String::new();
    io::stdin().read_line(&mut a).expect("");
    let a: i64 = a.trim().parse().expect("");
    let mut b = String::new();
    io::stdin().read_line(&mut b).expect("");
    let b: i64 = b.trim().parse().expect("");
    println!("{:?}", a + b);
}

Go

package main
import "fmt"

func main(){
    var a, b int64
    fmt.Scan(&a)
    fmt.Scan(&b)
    fmt.Printf("%d\n", a + b)
}

Kotlin

import java.util.*
 
fun main(args: Array<String>) {
    val sc = Scanner(System.`in`);
    var a: Long = sc.next().toLong();
    var b: Long = sc.next().toLong();
    println(a + b);
}

Кумир (используются 32-битные числа)

алг Задача1
нач
  цел A, B
  ввод A
  ввод B
  вывод A + B
кон