Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Необходимо реализовать класс PrimeNumberGenerator
— генератор
простых чисел.
У класса должен быть конструктор,
принимающий (int start
), и функция int GetNextPrime()
,
возвращающая ближайшее справа от start
-а простое число (включая start
).
Функция GetNextPrime
должна изменять состояние объекта — при повторном
ее вызове нужно возвращать уже следующее простое число.
class PrimeNumberGenerator {
public:
explicit PrimeNumberGenerator(int start);
int GetNextPrime();
};
Файл с решением должен содержать только реализацию описанного
класса, без функции main
.
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Реализовать класс Date
со следующими методами:
Конструктор Date(int year, int month, int day)
Метод bool IsLeap() const
, возвращающий true
в случае, если год является високосным и false
в противном случае.
Метод std::string ToString() const
, возвращающий строковое представление даты в формате dd.mm.yyyy
.
Метод Date DaysLater(int days) const
, возвращающий дату, которая наступит спустя days
дней от текущей.
Метод int DaysLeft(const Date& date) const
, возвращающий разницу между указанной и текущей датой (в днях).
Файл с решением должен содержать только реализацию описанного класса, без функции main.
Input file: | Standard input | Time limit: | 5 sec | |
Output file: | Standard output | Memory limit: | 512 Mb |
You are to create .cpp
file with implementation of num.h
Constructor of Num
should store value
modulo modulo
.
By default, modulo
is equal to 0. In that case modulo operation
should not be applied to value
.
Copy constructor should only copy
value
value. modulo
must be set to zero in copy constructor.
Input file: | Standard input | Time limit: | 1 sec | |
Output file: | Standard output | Memory limit: | 512 Mb |
You are to implement class Set
in which the basic operations on sets are implemented:
Set Union(const Set&) const
,
Set Intersection(const Set&) const
,
Set Difference(const Set&) const
,
Set SymmetricDifference(const Set&) const
.
It is also necessary to implement a constructor
Set(const std::vector
and functions for adding,
removing and checking the presence of an element in the set:
void Add(int64_t)
,
void Remove(int64_t)
, bool Contains(int64_t) const
.
Also, implement the method std::vector
that will be
used to access the elements of the set.
The class is supposed to be used to store integers of type int64_t
. For storing items
you should use std::vector
with the appropriate template parameter
The file with the solution must contain only the implementation of the described class, without a main
Input file: | Standard input | Time limit: | 5 sec | |
Output file: | Standard output | Memory limit: | 512 Mb |
You are to create .cpp
file with implementation of num.h
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать класс BufferedReader
со следующим интерфейсом:
class BufferedReader {
public:
explicit BufferedReader(PackageStream* stream);
int32_t Read(char* output_buffer, int32_t buffer_len);
};
В конструктор BufferedReader
передается указатель на объект класса PackageStream
(см. описание ниже), с помощью которого будут считываться пакеты некоторой длины.
Метод int32_t Read(char* output_buffer, int32_t buffer_len)
записывает по указателю output_buffer
пакет длины не более buffer_len
и возвращает реальный размер записанного пакета (это число может быть меньше, чем заданная длина, если строка закончилась раньше).
Интерфейс класса PackageStream
:
class PackageStream {
public:
PackageStream(std::string source, int32_t package_len);
int32_t PackageLen() const;
int32_t ReadPackage(char* output_package);
};
В конструктор PackageStream
передается строка source
, из которой впоследствии побайтово будут считываться пакеты длины package_len
и, собственно, длина пакетов package_len
.
Метод int32_t PackageLen()
возвращает длину пакета (package_len
), который считывает метод ReadPackage
.
Метод int32_t ReadPackage(char* output_package)
записывает по указателю output_package
пакет длины не более package_len
и возвращает реальный размер записанного пакета.
Файл с решением должен содержать только реализацию описанного класса, без функции main.