Как готовиться к олимпиадам по информатике?

Санкт-Петербургский университет является одним из лидеров в развитии научных школ информатики.

Успешное развитие школы информатики в Санкт-Петербургском университете было бы невозможно без личного участия в этом деле и энтузиазма признанных специалистов в области информатики как А.Ю. Гарнаев, А.В. Матросов, В.М. Гришкин, С.Н.

Информатика

ОЛИМПИАДА ШКОЛЬНИКОВ СПбГУ ПО ИНФОРМАТИКЕ

Андрианов, Е.И. Веремей, А.Б. Дегтярев. Созданные ими монографии и учебно-методические пособия известны и пользуются популярностью по всей стране.

Соответствие направлений подготовки и специальностей, на которые Санкт-Петербургский государственный университет проводит прием в 2019 году, профилю олимпиады и порядок предоставления льгот победителям и призерам олимпиад школьников, проводимых в соответствии с Порядком проведения олимпиад школьников.

В Санкт-Петербургском университете Олимпиада по информатике проводится с 2006-2007 учебного года. С самого первого года проведения олимпиады она проходила в два этапа: отборочный и финальный (заключительный).

По сравнению с 2006-2007 учебным годом число участников олимпиады в 2011-2012 учебном году возросло более чем в 10 раз, составив 1286 человек. Возросло и число участников заключительного этапа олимпиады.

Число участников Олимпиады постепенно увеличивалось: в 2009-2010 учебном году составило 306 человек, в 2010-2011 учебном году – 317 человек, а в 2011-2012 учебном году выросло в 4 раза и составило 1286 участников отборочного этапа и 265 участников заключительного этапа.

С 2006-2007 учебного года в олимпиаде по информатике приняли участие школьники из более чем 58 регионов России, а также нескольких стран СНГ. Такому широкому региональному охвату способствовало проведение отборочного этапа олимпиады как в очной форме в городах России, так и в дистанционной форме.

Индивидуальность вариантов отборочного этапа для каждого участника обеспечивается путем случайного комплектования варианта задачами из закрытого банка задач, составленных методической комиссией Олимпиады школьников СПбГУ по информатике.

В заключительном этапе Олимпиады школьников СПбГУ по информатике, проводимом в очной форме, в 2011-2012 учебном году приняли участие школьники из 33 городов Российской Федерации. Этап проходил в очной форме более чем в 20 регионах России.

Основной целью Олимпиады школьников Санкт-Петербургского государственного университета по информатике является выявление, поддержка и развитие талантов, укрепление и развитие связей школ различных регионов России и стран СНГ с Санкт-Петербургским университетом, пропаганда научного знания и формирование интереса у школьников к прикладным аспектам информатики.

Отборочный этап олимпиады направлен на выявление общего уровня знаний у участника олимпиады. Задания, предлагаемые участникам отборочного этапа олимпиады, предполагают творческий подход к интерпретации условий задачи и формированию алгоритмов ее решения.

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

За время проведения Олимпиады школьников СПбГУ по информатике сформировался творческий коллектив преподавателей и аспирантов, имеющих большой опыт организации и проведения олимпиад школьников, взявший на себя труд по организации, подготовке, методическому сопровождению Олимпиады.

Список победителей и призёров Олимпиады школьников СПбГУ по информатике в 2017/18 учебном году, продолжающих  освоение образовательных программ среднего (полного) общего образования .

Нижеуказанные учащиеся допускаются к участию в заключительном этапе Олимпиады школьников СПбГУ в 2018/19 учебном году без участия в отборочном этапе

ФИО Населённый пункт образовательного учреждения Название образовательного учреждения Класс
Шиляева Екатерина Дмитриевна Челябинск МБОУ «Физико-математический лицей № 31 города Челябинска» 8
Ясавиев Юсуф Рустамович Казань МАОУ «Лицей-интернат № 7» 10
Гальченко Дмитрий Геннадьевич Ставрополь МБОУ СОШ № 28 10
Дмитриев Александр Алексеевич Санкт-Петербург Естественно-научный лицей ФГАОУ ВО «Санкт-Петербургский политехнический университет Петра Великого» 10
Каширин Артем Сергеевич Магнитогорск МОУ «Средняя общеобразовательная школа № 5 с углублённым изучением математики» города Магнитогорска 10
Ковалено Илья Александрович Новороссийск ЧОУ СОШ «Личность» 10
Наумов Данил Олегович Севастополь ГБОУ города Севастополя «Гимназия № 1 имени А. С. Пушкина» 8
Палаев Андрей Игоревич Астрахань ГБОУ Астраханской области «Школа-интернат одаренных детей имени А. П. Гужвина» 10
Провоторов Александр Владимирович Новороссийск ЧОУ СОШ «Личность» 10
Сулименко Никита Сергеевич Новороссийск ЧОУ СОШ «Личность» 10
Ушакова Алина Вадимовна Санкт-Петербург ГБОУ «Президентский физико-математический лицей № 239» 10
Якупов Ильгиз Махмутович Челябинск ГБОУ «Челябинский областной многопрофильный лицей-интернат для одаренных детей» 9
Ястреба Елизавета Сергеевна Челябинск МАОУ «Лицей № 97 города Челябинска» 10

Источник: https://olympiada.spbu.ru/index.php/olimpiada-shkolnikov/informatika

Разбор задачи с Международной олимпиады по информатике IOI 2016

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

В августе этого года в Казани прошла Международная олимпиада по программированию для школьников — IOI 2016. Российская команда стала второй в общем зачете.

Один из серебряных медалистов, Денис Солонков из г. Мытищи, сделал разбор задачи «Обнаружение молекул», которая предлагалась участникам олимпиады.

Денис Солонков — многократный победитель Всероссийских олимпиад по программированию и Moscow CTF School, выпускник Школы программистов, ныне студент ВШЭ.

Являясь одним из преподавателей Дениса, я попросил его сделать разбор задачи с IOI 2016.

Условие задачи

Петр работает в компании, которая создала прибор для обнаружения молекул. Каждая молекула имеет целый положительный вес. Прибор характеризуется интервалом обнаружения [l, u], где l и u целые положительные числа.

Прибор может обнаружить множество молекул тогда и только тогда, когда это множество содержит такое подмножество, что суммарный вес молекул в нем принадлежит интервалу обнаружения прибора. Более формально, рассмотрим n молекул с весами w0,…,wn−1.

Обнаружение считается успешным, если существует множество различных индексов I = {i1,…, im} такое, что l ≤ wi1 +…+ wim ≤ u. В силу особенностей работы прибора разница между l и u гарантированно больше либо равна разнице весов между самой тяжелой и самой легкой молекулами. Более формально, u − l ≥ wmax − wmin, где wmax = max(w0 ,…,wn−1) и wmin = min(w0 ,…,wn−1). Требуется написать программу, которая либо находит любое подмножество молекул с суммарным весом, принадлежащим интервалу обнаружения прибора, либо определяет, что такого подмножества не существует.

Читайте также:  Подготовка к олимпиадам по английскому

Детали реализации

Вам следует реализовать одну функцию (метод):

int[] solve(int l, int u, int[] w)

  • l и u: границы интервала обнаружения,
  • w: веса молекул.

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

int solve(int l, int u, int[] w, int n, int[] result) n: количество элементов в w (то есть число молекул),

остальные параметры такие же, как описано выше. Вместо того, чтобы возвращать массив состоящий из m индексов (как указано выше), функция должна записать индексы в первые m ячеек массива result и затем вернуть m. Если требуемого подмножества не существует, то функция должна вернуть 0, не записывая ничего в массив result. Ваша программа может записывать индексы в возвращаемый массив (или в массив result для языка Си) в любом порядке. Пожалуйста, используйте предоставленные шаблоны файлов для уточнения реализации на выбранном вами языке программирования.

Примеры

Пример 1 solve(15, 17, [6, 8, 8, 7]) В этом примере есть четыре молекулы с весами 6, 8, 8 и 7. Прибор может обнаружить подмножества молекул с суммарным весом от 15 до 17 включительно.

Обратите внимание, что 17 − 15 ≥ 8 − 6. Суммарный вес молекул 1 и 3 равен w1 + w3 = 8 + 7 = 15, таким образом функция может вернуть [1, 3].

Другие возможные правильные ответы: [1, 2] (w1 + w3 = 8 + 8 = 16) и [2, 3] (w1 + w3 = 8 + 7 = 15).

Пример 2

solve(14, 15, [5, 5, 6, 6]) В этом примере есть четыре молекулы с весами 5, 5, 6 и 6. Требуется найти подмножество с суммарным весом от 14 до 15 включительно. Опять же, обратите внимание, что 15 − 14 ≥ 6 − 5. Для данного примера не существует подмножества молекул с суммарным весом от 14 до 15, соответственно функция должна вернуть пустой массив.

Пример 3

solve(10, 20, [15, 17, 16, 18]) В этом примере есть четыре молекулы с весами 15, 17, 16 и 18. Требуется найти подмножество с суммарным весом от 10 до 20 включительно. Вновь, обратите внимание, что 20 − 10 ≥ 18 − 15. Любое подмножество, состоящее из одного элемента, имеет вес от 10 до 20, соответственно возможные правильные ответы это [0], [1], [2] и [3].

Система оценивания

(9 баллов): 1 ≤ n ≤ 100, 1 ≤ wi ≤ 100, 1 ≤ u, l ≤ 1000, все wi равны. (10 баллов): 1 ≤ n ≤ 100, 1 ≤ wi, u, l ≤ 1000, и max(w0 ,…, wn−1) − min(w0,…, wn−1 ) ≤ 1. (12 баллов): 1 ≤ n ≤ 100 и 1 ≤ wi,u, l ≤ 1000. (15 баллов): 1 ≤ n ≤ 10 000 и 1 ≤ wi, u, l ≤ 10 000. (23 балла): 1 ≤ n ≤ 10 000 и 1 ≤ wi, u, l ≤ 500 000. (31 балл): 1 ≤ n ≤ 200000 и 1 ≤ wi, u, l < 231.

Пример проверяющего модуля

Проверяющий модуль получает данные в следующем формате:

  • Строка 1: целые числа n, l, u.
  • Строка 2: n целых чисел: w0,…, wn−1.

Решение от Дениса

Задача уже неплохо формализована. Нам нужно выбрать подпоследовательность чисел из массива w длины n, так, чтобы их сумма лежала в отрезке [l, u]. Также, присутствует странное условие: u − l ≥ wmax − wmin (1). Оно явно играет роль в решении задачи, иначе его бы просто не было. Попытаемся понять, что оно нам дает. Пусть мы выбрали подпоследовательность элементов с суммой = S и S < l.

В таком случае, если мы заменим один из элементов подпоследовательности на какой-то другой, не выбранный нами, то новая сумма S’ ≤ u. Случай, увеличивающий сумму на максимально возможное число, это замена минимального на максимальный элемент, а согласно условию u − l wmax ≥ wmin. Вооружившись этим фактом, перейдем непосредственно к решению.

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

  • Определить L — количество элементов в правильном ответе, или сказать, что его не существует.
  • Найти L элементов, сумма которых лежит в [l, u]

Сначала разберемся во вторым пунктом. Пусть мы знаем, что ответ существует и в нем содержится L элементов.

Возьмем первые L элементов отсортированного w. Их сумма точно ≤ u, так как мы условились, что ответ существует. Теперь выполним следующий алгоритм. Если текущая сумма больше или равна нижней границы, завершить работу алгоритма Заменить минимальный элемент из нашей выборки на максимальный из ещё не не выбранных.

В случае, если такая замена не увеличивает сумму, то завершить работу алгоритма не проводя её. Заметим, что благодаря (1) мы никогда не пересечем верхнюю границу. Почему этот алгоритм точно найдет ответ? Предположим обратное. В каждой итерации алгоритм меняет минимальный элемент нашей выборки на максимальный из не выбранных.

Если такой элемент меньше нашего, то это значит, что мы выбрали L последних элементов w. Если сумма L максимальных элементов меньше l, значит подходящей подпоследовательности длины L не существует, однако мы условились об обратном. Противоречие. Подобный алгоритм можно быстро реализовать, используя встроенную в С++ реализацию сбалансированного дерева поиска: set.

Читайте также:  Преимущества профессии архитектора

Количество итераций алгоритма в худшем случае: n, асимптотика подобного решения будет O(n log n). Вернемся к первому этапу решения нашей задачи, а именно в поиске подходящего L. Мы можем просто проверить каждый из них и получить асимптотику O(n2 log n), но это будет слишком долго работать. Давайте найдем такую длину i, что сумма первых i элементов больше u.

Если такой длины не существует, то будем полагать, что i = n + 1 Из всех таких возьмем минимальную. Я утверждаю, что если правильный ответ существует, то он будет содержать i − 1 элемент. Конечно, могут существовать и другие варианты ответа, но один из них будет содержать в себе такое количество элементов. Докажем это утверждение. Пусть L = i − 1, или L = n, если i не существует.

Сумма первых L элементов ≤ u, так как L < i. Запустим описанный выше алгоритм поиска подпоследовательности. Если он найдет ответ, то наше утверждение верно. В ином случае, сумма последних L элементов < l. Тогда ответа также не существует для любой длины, меньшей чем L. Просто потому что было взято L максимальных, так что любое количество меньше тоже будет меньше l.

Ответа также не существует для всех длин больше L, так как сумма первых i элементов больше, чем u. Значит, ответа вовсе не существует. Итого, мы можем найти необходимую длину за O(n), и найти ответ по длине за O(n log n). Значит, время работы всего алгоритма будет O(n log n), что спокойно набирает 100 баллов.

Исходный код решения

#include  #include  #include

  • #include «molecules.h» //Including grader file
  • using ll = long long; //A little alias to save time.
  • using namespace std;
  • vector find_subset(int l, int u, vector w) {int n = w.size(); vector weight(n);  for (int i = 0; i first — picked.begin()->first; auto el1 = *picked.begin(); auto el2 = *remain.rbegin(); picked.erase(el1); picked.insert(el2); remain.erase(el2);}  if (curpicked)

Источник: https://habr.com/post/312018/

Подготовка к олимпиадам школьников по информатике

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

Кружки в Москве для всех желающих

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

Для школьников 9-10 классов, не знакомых с программированием на C++, рекомендуется пройти онлайн-курс по изучению языка C++ на платформе Stepik.

Название Место проведения Время проведения Для кого Преподаватель
Алгортимы и структуры данных ЦПМ, м. Спортивная, ул. Хамовнический вал, д. 6, кабинет 35 Среда 16:00-19:00. Занятия с 26 сентября 2018 г. Кандидаты в сборную Москвы по информатике, (8)-9-(10) классы Игорь Борисович Мамай
Решение олимпиадных задач по информатике ЦПМ, м. Спортивная, ул. Хамовнический вал, д. 6, кабинет 35 Пятница 16:00-19:00. Занятия с 28 сентября 2018 г. Кандидаты в сборную Москвы по информатике, (9)-10-11 классы Максим Деб Натх
Алгоритмы для начинающих ЦПМ, м. Спортивная, ул. Хамовнический вал, д. 6, кабинет 35 Суббота 15:00-17:00. Занятия с 6 октября 2018 г. Кандидаты в сборную Москвы по информатике, (6)-7-8 классы Татьяна Николаевна Шолохова
Олимпиадные задачи в ЦДО ЦДО ЦПМ, м. Калужская, м. Проспект Вернадского, ул. Новаторов 34 к2, кабинет 43 вторник 16:00-20:00 (можно приходить не к началу), четверг 17:30-19:30. Занятия с 6 сентября Михаил Сергеевич Густокашин
Образовательные программы Tinkoff.ru.

  • Направления:
  • — Алгоритмы и Структуры данных
  • — Машинное и Глубинное обучение
Штаб-квартира Tinkoff.ru: г. Москва, ст.м. Водный стадион, Головинское шоссе 5, БЦ Водный (5-й этаж) С 31 августа по 7 сентября будет проходить конкурсный отбор. Занятия начнутся 15 сентября и будут проходить по субботам. Студенты МФТИ и ВШЭ

Примечание.В состав кандидатов в сборную Москвы могут быть включены учащиеся 9-11 классов — победители и призеры регионального этапа по информатике или московской олимпиады по информатике, а также учащиеся 7-8 классов — победители муниципального этапа по информатике или победители и призеры московской олимпиады по информатике.

Источник: http://inf.mosolymp.ru/

Олимпиадная информатика юниоров

Более 50 юниоров в возрасте до 15 лет из 5 стран (Россия, Казахстан, Нидерланды, Китай и Болгария) — участниц Международной олимпиады по информатике (IOI) пройдут подготовку по олимпиадной информатике международного уровня в рамках летней смены 2019 года Международной Школы информатики «Юниор» с 25 июня по 5 июля на базе Лицея Иннополис в новом ИТ столице России- городе Иннополис недалеко от Казани в Республике Татарстан. В программу подготовки кроме тренировочных туров входит тур — Кубок ISIJ, в рамках которого команды стран разыгрывают медали и высшую награду — кубок Школы. Ребятам предложена интересная экскурсионная программа, а также занятия в робот — клубе, клубе программирования, шахматный турнир и конкурс оригами. ISIJ- это полигон высокого старта для начинающих олимпийцев в информатике.

По итогам летних учебно-тренировочных сборов по информатике 2019 года (МФТИ, рук сборов А.Малеев) определен состав сборной команды России на IOI 2019 , Азербайджан, Баку.

Состав сборной 2019: Романов Владимир, Москва ( 11кл, дважды золотой медалист IOI 2017 и IOI 2018),  Лифарь Егор, Москва ( 9 кл, дважды серебряный медалист IOI 2017 и IOI 2018, чемпион  EJOI 2019), Гайнуллин Ильдар, Казань (10 кл, абсолютный чемпион России на финале ВсОШ 2019, золотой медалист EJOI 2018, первое участие в IOI),  Морозов Александр Санкт-Петербург ( чемпион России среди 11классов на ВсОШ 2019, первое участие в IOI). Пожелаем нашей сборной высоких результатов.  Эти ребята начали подготовку на учебно-тренировочных сборах с юниорского возраста: Е. Лифарь с 6 класса А. Морозов с 6 класса В. Романов с 8 класса  И. Гайнуллин с 6 класса.  Важная роль юниорского опыта  поддержана Международной школой информатики, где можно пройти подготовку по программе  высоких результатов в партнерстве со школьниками и тренерами из стран лидеров ioi- Китая и Болгарии.

Читайте также:  Стоит ли осуществлять поступление на программиста?

Приглашаем лицейские сборные регионов РФ к участию в ISI Junior, регистрация на 2020 год  открыта непрерывно командам от регионов РФ (лицейским командам по заявке от лицея, сборным региональным командам для успешных юниоров 6-8 кл 2019 года по итогам муниципального этапа на летнюю смену 2020, а также для включения в дистанционную смену с сентября 2019 года) в разделе регистрации на сайте www.isi-junior.ru

Регистрация в Международной школе юниоров 2019 для российских участников продлена до 10 июня.

Результаты Заключительного этапа ВсОШ по информатике 2019 представлены в разделе Результатов на официальном сайте этапа. Российская команда Оргкомитета и НТК  ISIJ  поздравляет  участников Международной школы юниоров с достойным выступлением на заключительном этапе 2019 года!

Недавно в Новосибирске прошла очередная C++ Siberia 2019.

Коллегия минсвязи РТ: рассуждения о безбумажной эре, призывы не тратить деньги «воровато» и Никифоров в зале.

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

Международная выставка потребительских технологий CES — престижное событие для производителей электроники, ИТ-компаний, стартапов. Самое ожидаемое техношоу Америки славится масштабом представленных инноваций, что вызывает огромный интерес как в профессиональной среде, так и у широкой публики.

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

В преддверии Нового года CNews выбрал 12 наиболее значимых событий 2018 г., имевших важное значение для российской ИКТ-отрасли.

В этом видео от канала Калифорнийского технологического института (Caltech) рассказывается о том, как профессор Маркус Майстер и его коллеги объединили технологию дополненной реальности с алгоритмами «компьютерного зрения».

4 декабря — Всероссийский день информатики. В 2018 году мы отмечаем 79-летие первой отечесивенной вычислительной машины, запатентованной в 1948 году (впервые в 1946 году патент зарегистрирован в США на машину ENIAC).

1 мая исполняется 100 лет со дня рождения Башира Искандаровича Рамеева, ученого, работавшего в области вычислительной техники (1918 – 1994). Среди основных направлений его деятельности – исследование и конструирование технических и программных средств, комплексов ЭВМ и их применение в автоматизированных системах.

Российские школьники завоевали 11 золотых медалей на Международном турнире по информатике в Болгарии.

Современная робототехника строится на знаниях из области программирования, механики, мехатроники, электротехники, электроники и автоматического управления.

Как большие данные и «цифра» изменят российские школы.

Российское Общество «Знание» совместно с научно – образовательным центром «Заочная школа МИФИ» объявляет о старте масштабного просветительского БЕСПЛАТНОГО проекта «Азбука цифровой экономики». В рамках проекта с октября по декабрь 2018 года запланировано проведение серии вебинаров по технологиям цифровой экономики.

В начале 80-х годов прошлого века сотрудник Bell Labs Бьёрн Страуструп после долгих мучений с существующими языками программирования провёл эксперимент со скрещиванием C и Simula.

Выложено информписьмо оргкомитета о ISIJ 2019 для участников от РФ.

Источник: http://infolymp.ru/

Онлайн олимпиады для педагогов, воспитателей, школьников и студентов

Олимпиады для проверки знаний школьников по информатике

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

Поэтому педагогам нужно регулярно проверять своих учеников на знания из области информатики и корректировать методы проведения уроков, если они оказываются неудовлетворительными. Это поможет учителю совершенствоваться профессионально и достигать значительных карьерных вершин.

Быстро тестировать уровень знаний школьников можно с помощью онлайн-олимпиад, которые постоянно проводятся на нашем сайте «Айда».

Подготовка учеников к олимпиаде по информатике

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

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

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

Для чего нужны онлайн-олимпиады по информатике

Онлайн-олимпиады по информатике необходимы для выяснения уровня знаний учеников и выявления наиболее талантливых из них.

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

Помощь учителю информатики в аттестации

Олимпиады на нашем сайте проводятся бесплатно. Но их успешное прохождение предполагает по желанию получение дипломов стоимостью 89 рублей.

они содержат фамилию, имя, отчество школьника и его учителя, номинацию тестирования, его результаты, дату и обладают индивидуальным номером. Такой диплом педагоги могут прикладывать к портфолио и предъявлять вмести с ним при повышении квалификации.

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

Источник: https://a-yda.ru/olimpiady-dlya-shkolnikov/dlya-shkolnikov-po-informatike/

Ссылка на основную публикацию
Adblock
detector