Задача 01A. Hello, world!

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Требуется написать программу, которая печатает "Hello, world!" (без кавычек)


Задача 01B. Норма L2

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Вам дан вектор произвольной размерности (массив вещественных чисел). Необходимо посчитать его норму L2 (евклидову норму). Евклидова норма — это квадратный корень из суммы квадратов компонент вектора.

Формат входных данных

Входные данные содержат вещественные числа — компоненты вектора, записанные в одной строке через пробел.

Формат выходных данных

Выходные данные должны содержать одно вещественное число — евклидову норму этого вектора.

Примеры тестов

Стандартный вход Стандартный выход
1
3.0 4.0
5.0
2
10.5 20.1 3.1
22.8882065701968

Задача 02A. Электронная почта

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

В ДВФУ у каждого студента и сотрудника есть персональный адрес электронной почты в домене dvfu.ru.

Требуется написать программу, которая по заданным фамилии, имени и роли пользователя создает адрес его электронной почты в формате [фамилия].[имя]@[роль].dvfu.ru

Формат входных данных

Входные данные содержат три слова в разных строках.

Формат выходных данных

Выходные данные должны содержать одну строку — электронный адрес в описанном формате.

Примеры тестов

Стандартный вход Стандартный выход
1
sporyshev
ms
students
sporyshev.ms@students.dvfu.ru

Задача 02B. FizzBuzz

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:7  

Условие

Требуется написать программу, которая считывает число и выводит Fizz, если число делится на 3, Buzz, если число делится на 5, и FizzBuzz, если оно делится и на 3, и на 5. Если число не делится ни на 3, ни на 5, вывести пустую строку (перевод строки).

Примеры тестов

Стандартный вход Стандартный выход
1
23
2
25
Buzz
3
30
FizzBuzz

Задача 02C. Кто первый? (Правильная Версия)

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Помогите группе из N студентов понять, кто из них первый пойдет решать диффуры, если преподаватель вызывает к доске в алфавитном порядке.

Формат входных данных

Первая строка содержит число N — количество студентов в группе. Следующие N строк содержат фамилии студентов в кодировке UTF8.

Формат выходных данных

Выходные данные должны содержать единственную строку — фамилию студента, который первым пойдет к доске в кодировке UTF8.

Ограничения

1 < N < 100

Примеры тестов

Стандартный вход Стандартный выход
1
4
Petrov
Ivanov
Sidorov
Shchurov
Ivanov

Задача 02D. GCD

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Дано 3 числа: A, B, C. Необходимо посчитать наибольший общий делитель (НОД) каждой из пар A и B, A и C, B и C

Формат входных данных

Входные данные содержат 3 числа — A, B, C.

Формат выходных данных

Выходные данные должны содержать 3 числа — НОД A и B, НОД A и C и НОД B и C

Примеры тестов

Стандартный вход Стандартный выход
1
2 6 3
2 1 3

Задача 02E. Сложное

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

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

Формат входных данных

Входные данные содержат предложение в кодировке CP1251.

Формат выходных данных

Выходные данные должны содержать тип предложения в кодировке CP1251. Если предложение сложное, слово "сложное" должно стоять первым и отделяться пробелом от восклицательности предложения (смотри пример).

Примеры тестов

Стандартный вход Стандартный выход
1
Что тут происходит?!?!
вопросительно-восклицательное
2
Скажите мне, пожалуйста!
сложное восклицательное
3
Ничего
повествовательное

Задача 03A. Циклический сдвиг

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

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

Формат входных данных

Первая строка содержит числа N и K Следующая строка содержит N чисел — элементы массива.

Формат выходных данных

Необходимо вывести N чисел — исходный массив, циклически сдвинутый влево на K.

Ограничения

1 < N < 100

Примеры тестов

Стандартный вход Стандартный выход
1
4 1
1 2 3 4
2 3 4 1
2
5 2
7 1 3 6 10
3 6 10 7 1

Задача 03B. Key sort

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

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

Формат входных данных

Входные данные содержат слова, разделённые пробелами.

Формат выходных данных

Выходные данные должны содержать строку слов, разделённых пробелом, отсортированных по второй букве.

Примеры тестов

Стандартный вход Стандартный выход
1
azx zab ddd
zab ddd azx

Задача 03C. CamelCase

Автор:А. Кленин   Ограничение времени:2 сек
Входной файл:input.txt   Ограничение памяти:64 Мб
Выходной файл:output.txt  
Максимальный балл:102  

Условие

При написании сложных программ важное значение имеет стандартизация стиля кодирования, в частности формата записи имён переменных. Часто используются следующие два стандарта для имён переменных, состоящих из нескольких слов:

  1. Слова записываются друг за другом через знак подчёркивания с маленькой буквы (например my_variable).
  2. Слова записываются друг за другом подряд, при этом каждое слово начинается с большой буквы (например MyVariable).

Требуется написать программу, переводящую имя переменной из одного стандарта в другой.

Рекомендуется рассмотреть частичные решения:

  1. Имя состоит из одного слова

Формат входного файла

Входной файл содержит одну строку — имя переменной в каком-либо из стандартов.

Формат выходного файла

Выходной файл должен содержать имя переменной, переведённое в другой стандарт.

Ограничения

Входное имя имеет длину не более 255 символов, содержит только латинские буквы и символ подчёркивания, заведомо соответствует одному из стандартов.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
x
X
2
ATest
a_test

Задача 03D. Медленное вычеркивание

Автор:А. Кленин   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  
Максимальный балл:100  

Условие

Юная любительница математики Маша играет в игру с числами. Сначала она выбирает какое-нибудь целое число S.

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

Это действие повторяется до тех пор, пока не останется число, состоящее из одинаковых цифр.

Юный программист Вася решил произвести впечатление на Машу, запрограммировав её игру.

Требуется написать программу, которая по данному S определяет все числа, получающиеся в процессе игры.

Формат входного файла

Входной файл содержит единственное целое число S.

Формат выходного файла

Выходной файл должен содержать число N — количество чисел, получившихся в игре (не считая исходного S), за которым следует N целых чисел, перечисленных в порядке получения их Машей.

Ограничения

1 ≤ S < 109. В десятичной записи числа S отсутствуют нули.

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
333
0
2
12524
3
2524
252
22
3
536296747
6
56296747
6296747
696747
69677
6677
77

Задача 03E. Descendants

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Требуется написать на языке C# метод расширения Descendants возвращающий перечисление (IEnumerable<INode>) потомков INode в прямом порядке обхода в глубину .

                
    public interface INode
    {
        INode Parent { get; set; }
		INode FirstChild { get; set; }
		INode NextSibling { get; set; }
    }
                
            

INode заливать не нужно. Descendants должен находиться в namespace Tree.


Задача 03F. ReshapeExtension

Входной файл:Стандартный вход   Ограничение времени:2 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Требуется написать на языке C# extension method public static Array Reshape(this Array array, params int[] dimensions), который изменяет размерность массива.

Расширение должно находиться в namespace MyExtensions

Если вместимость нового массива меньше предыдущего, выдать исключение BadSizeException (его отправлять в cats не нужно)


Задача 04A. Class Student

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Требуется написать на языке C# класс Student реализующий интерфейс IStudent.


    namespace Fefu
    {
        public class WrongDataException : Exception
        {
            public WrongDataException()
            {
            }

            public WrongDataException(string message) : base(message)
            {
            }

            public WrongDataException(string message, Exception innerException) : base(message, innerException)
            {
            }
        }

        public interface IStudent
        {
            public int Age { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
        }
    }
            

Student должен находиться в namespace Fefu.

Сеттер свойства Age должен позволять присваивать только числа > 0, в остальных случаях требуется бросать исключение WrongDataException.
Сеттер свойств FirstName, LastName должен позволять присваивать только строки, состоящие из букв английского алфавита (первая буква заглавная), в остальных случаях требуется бросать исключение WrongDataException. Также Student должен иметь конструктор public Student(string firstName, string lastName, int age) .

WrongDataException и IStudent отправлять не нужно.


Задача 04B. Class MStack

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:1  

Условие

Требуется написать на языке C# класс MStack реализующий интерфейс IStack.

                
    public interface IStack<T> : IEnumerable, IEnumerable<T>
    {
        // Сводка:
        //     Gets the number of elements contained in the IStack.
        //
        // Возврат:
        //     The number of elements contained in the IStack.
        public int Count { get; }
        //
        // Сводка:
        //     Removes all objects from the IStack.
        public void Clear();
        //
        // Сводка:
        //     Determines whether an element is in the IStack.
        //
        // Параметры:
        //   item:
        //     The object to locate in the IStack. The value can
        //     be null for reference types.
        //
        // Возврат:
        //     true if item is found in the IStack; otherwise, false.
        public bool Contains(T item);
        //
        // Сводка:
        //     Returns the object at the top of the IStack without
        //     removing it.
        //
        // Возврат:
        //     The object at the top of the IStack.
        //
        // Исключения:
        //   T:System.InvalidOperationException:
        //     The IStack is empty.
        public T Peek();
        //
        // Сводка:
        //     Removes and returns the object at the top of the IStack.
        //
        // Возврат:
        //     The object removed from the top of the IStack.
        //
        // Исключения:
        //   T:System.InvalidOperationException:
        //     The IStack is empty.
        public T Pop();
        //
        // Сводка:
        //     Inserts an object at the top of the IStack.
        //
        // Параметры:
        //   item:
        //     The object to push onto the IStack. The value can
        //     be null for reference types.
        public void Push(T item);
        //
        // Сводка:
        //     Copies the IStack to a new array.
        //
        // Возврат:
        //     A new array containing copies of the elements of the IStack.
        public T[] ToArray();
    }
                
            

IStack заливать не нужно. MStack должен находиться в namespace MyCollection. Запрещено использовать готовые реализации Stack или любые другие коллекции из System.Collection.Generic.


Задача Z1. Сериализатор

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб
Максимальный балл:20  

Условие

Требуется разработать библиотеку для сохранения и чтения данных в формате JSON.

Библиотека должна содержать две основные функции string Serialize(object obj) и object Deserialize(string s).

Сохраняемые типы должны включать целочисленные, вещественные, string, bool, Dict со строковыми ключами и произвольным сохраняемым типом элементов, List с произвольным сохраняемым типом элементов, классы и структуры (не-generic).

При сохранении класса или структуры с публичными полями она должна преобразовываться в объект JSON с дополнительным полем "class", содержащим имя типа.

Отправляемое решение должно содержать автоматические тесты, полностью покрывающие функциональность.

Формат входных данных

Отправьте ссылку на конкретный коммит в репозитории на Github, например

https://github.com/klenin/cats-main/commit/781b8dc90387fe87b3d861ce1813dbdba5d4c827

В качестве среды разработки укажите Answer text.

Примеры тестов

Стандартный вход Стандартный выход
1
0
1

0.835s 0.042s 43