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

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

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

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

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

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

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

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

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

Особенности отдельных языков программирования

Visual C++ — в тестирующей системе этот компилятор отсутствует, вместо него следует использовать GNU C++. В программах на Visual C++ не должны использоваться предварительно откомпилированные заголовочные файлы (директива препроцессора #include "stdafx.h"), не должно быть вызова system("pause"), иных нестандартных особенностей компилятора Visual C++. Программа должна быть написана в соответствии со стандартом языка C++.

Free Pascal — при сдаче решений на Free Pascal следует учитывать, что в используемых стандартных настройках компилятора (без использования специальных опций компиляции в тексте программы) тип integer является 16-битным, а длина строки ограничена 255 символами. Обратите внимание на то, что в тестирующей системе также доступен компилятор PascalABC.Net.

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

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


Pascal

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

Python версии 3

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

C

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

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

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

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

QBasic (иcпользуется 32-битные числа)

DIM A AS LONG
DIM B AS LONG
INPUT A
INPUT B
PRINT A + B

Visual Basic

Module ProgramA
Sub Main()
DIM A, B AS Long
A = CLng(Console.Readline())
B = CLng(Console.Readline())
Console.WriteLine(A + B)
End Sub
End Module

PHP

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

Perl

my $a, $b;
$a = <>;
$b = <>;
print $a + $b;

Ruby

a = gets.to_i
b = gets.to_i
puts a + b

Go

package main
import "fmt"
import "runtime/debug"

func main(){
    var a, b int64
    debug.SetMaxStack(16 * 1024 * 1024);
    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);
}

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