<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Egor</title>
    <description>The latest articles on DEV Community by Egor (@h0rf7).</description>
    <link>https://dev.to/h0rf7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F608121%2Fd5084666-cddb-411d-a6d6-d5cf94d7c089.png</url>
      <title>DEV Community: Egor</title>
      <link>https://dev.to/h0rf7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/h0rf7"/>
    <language>en</language>
    <item>
      <title>КЕГЭ ИНФОРМАТИКА</title>
      <dc:creator>Egor</dc:creator>
      <pubDate>Tue, 25 May 2021 01:25:34 +0000</pubDate>
      <link>https://dev.to/h0rf7/-4aji</link>
      <guid>https://dev.to/h0rf7/-4aji</guid>
      <description>&lt;h1&gt;
  
  
  Выбор ЯП для ЕГЭ.
&lt;/h1&gt;

&lt;p&gt;Вообще нет разницы, но я бы советовал выбрать Python в силу своей простоты и компактности. Имба для ЕГЭ.&lt;br&gt;
Можешь изучить базовый синтаксис тут:&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=0JY9YhnFwo4"&gt;Базовый синтаксис от Роди&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=jDmn_zKuAMo"&gt;Базовый синтаксис от Александра Романовича&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Задание 1 (1-3 мин.)
&lt;/h1&gt;

&lt;p&gt;Ну тут все просто. Смотришь на граф, смотришь на матрицу смежности, решаешь.&lt;/p&gt;
&lt;h1&gt;
  
  
  Задание 2 (1 мин.)
&lt;/h1&gt;

&lt;p&gt;Классное задание. Легко прогается. Код шаблонный и выглядит следующим образом:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print('x y z')                                          # тут мы просто делаем удобный вывод
for x in range(2):                                      # запускаем фор для каждой переменной
    for y in range(2):                                  #
        for z in range(2):                              #
            if not (((not y) or (not z)) &amp;lt;= (z == x)):  # переписываем формулу из условия
                print(x, y, z)                          # выводим переменные
                                                        # все, смотрим вывод и таблицу в задаче, сопоставляем
                                                        #------------------------------------------------------
                                                        # вывод выглядит так:
                                                        # x y z
                                                        # 0 0 1
                                                        # 1 0 0
                                                        # 1 1 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Код работает для любого количества переменных. Если нужно две переменные &lt;em&gt;(хотя я думаю, что у тебя не будет проблем решить подобную задачу руками)&lt;/em&gt;, то делаешь 2 цикла, если четыре — соответственно 4 цикла.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 3 (миллион лет)
&lt;/h1&gt;

&lt;p&gt;Самое тупое задание в ЕГЭ по информатике. Пялимся на таблицу минут 10, находим ответ.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 4 (1-3 мин.)
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Условие Фано&lt;/strong&gt;. Не слышал о таком? Тогда почему ты вообще сдаешь информатику? Открываем пэинт/ножницы или рисуем на черновике. Как тебе удобнее.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 5 (1-2 мин.)
&lt;/h1&gt;

&lt;p&gt;Классное задание, которое легко решается с помощью калькулятора. Включаем режим программиста, решаем.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xjGcDWeS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ouaw0ye34d7zbil5zio.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xjGcDWeS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ouaw0ye34d7zbil5zio.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Задание 6 (1 мин.)
&lt;/h1&gt;

&lt;p&gt;Крутое задание, чтобы сделать его ручками, но мы слишком ленивые. Запускаем фор, немного изменяем программу и получаем ответ.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; for i in range(999):       # фор любого размера (чем больше, тем лучше)
    k = i                   # вместо int(input()) пишем i
    n = 1001                # остальную часть кода оставляем неизменной
    s = -1001               #
    while s + n &amp;lt; 501:      #
        n += k * 4          #
        s += n              #
    if s == 20:             # кроме этой. тут мы пишем условие вывода
        print(i)            # выводим i
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Задание 7 (1-2 мин.)
&lt;/h1&gt;

&lt;p&gt;Норм задание. Учим формулы, считаем на калькуляторе.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 8 (1-2 мин.)
&lt;/h1&gt;

&lt;p&gt;Тут есть классное решение кодом (не ожидали, да?)&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 9 (1-3 мин.)
&lt;/h1&gt;

&lt;p&gt;Еее, бесплатные баллы. Запускаем эксель и делаем.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 10 (10 сек.)
&lt;/h1&gt;

&lt;p&gt;Тут нечего говорить. Задание добавили, чтобы если ты ничего не учил, то хотя бы один первичный балл получил.&lt;br&gt;
Открываешь файл, нажимаешь комбинацию клавиш &lt;strong&gt;&lt;em&gt;ctrl+f&lt;/em&gt;&lt;/strong&gt; и вбиваешь слово. В параметрах поисках можешь поставить "только слово целиком".&lt;/p&gt;
&lt;h1&gt;
  
  
  Задание 11 (1-3 мин.)
&lt;/h1&gt;

&lt;p&gt;В этом задание главное правильно читать условие. Обрати внимание на фразы "целое количество байт", "минимально возможным количеством бит" и так далее. Считай на калькуляторе, тебе все можно!&lt;/p&gt;
&lt;h1&gt;
  
  
  Задание 12 (1-2 мин.)
&lt;/h1&gt;

&lt;p&gt;Пишем код. Точнее переписываем его с алгоритмического языка на нормальный.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                    # Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 84 единиц?
                                    # НАЧАЛО
                                    #    ПОКА нашлось (11111)
                                    #        заменить (222, 1)
                                    #        заменить (111, 2)
                                    #    КОНЕЦ ПОКА
                                    # КОНЕЦ
                                    #
s = '1' * 84                        # задаем строку
while '11111' in s:                 # переписываем условие
    s = s.replace('222', '1', 1)    # функция s.replace(что заменить, на что заменить, сколько раз)
    s = s.replace('111', '2', 1)    #
print(s)                            # вывод полученной строки
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Задание 13 (1-3 мин.)
&lt;/h1&gt;

&lt;p&gt;Открываешь пэинт/ножницы, рисуешь. Тут главное не запутаться.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 14 (1-2 мин.)
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 15 (2-3 мин.)
&lt;/h1&gt;

&lt;p&gt;Тут несколько типов заданий. Условно их можно разделить на два типа: отрезки и другие.&lt;/p&gt;

&lt;h2&gt;
  
  
  Отрезки
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                                        # P = [7, 14] и Q = [9, 11]. Укажите наибольшую 
                                                        # возможную длину промежутка A,
                                                        # для которого формула
                                                        # ((x ∈ P) ~ (x ∈ Q)) → ¬(x ∈ A)
                                                        #
p1, p2, q1, q2 = 7, 14, 9, 11                           # отмечаем края отрезков
P = [i / 10 for i in range(p1 * 10, p2 * 10 + 1)]       # делаем отрезок вида [7.0, 7.1, 7.2, ..., 14.0]
Q = [i / 10 for i in range(q1 * 10, q2 * 10 + 1)]       # делаем отрезок вида [9.0, 9.1, 9.2, ..., 11.0]
                                                        #
                                                        #
def f(x, A):                                            # заводим функцию
    return ((x in P) == (x in Q)) &amp;lt;= (x not in A)       # перепечатываем из условия
                                                        #
                                                        #
A = set([i / 10 for i in range(10, 201)])               # заводим множество без повторений (set) А вида [1.0, 1.1, ..., 20.0]
                                                        #
for x in [i / 10 for i in range(10, 201)]:              # перебираем те же самые значения х
    if not f(x, A):                                     # если нашли НЕ подходящее значение
        A.remove(x)                                     # удаляем его
                                                        #
print(sorted(A))                                        # оно там чет жесть выводит, поэтому сортируем
                                                        # смотрим вывод и отвечаем на вопрос, поставленный в задаче
                                                        # не забываем следить, порвался отрезок или нет
                                                        # если отрезок порвался, то это два отрезка
                                                        # следовательно выбираем наибольший/наименьший (см. условие задачи)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;НО ЭТО АЛГОРИТМ ДЛЯ НАИБОЛЬШЕГО ОТРЕЗКА, В АЛГОРИТМЕ НА НАИМЕНЬШИЕ ЕСТЬ НЕБОЛЬШИЕ ОТЛИЧИЯ&lt;/strong&gt;&lt;br&gt;
А именно:&lt;br&gt;
Мы меняем две строчки.&lt;br&gt;
Вместо&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A = set([i / 10 for i in range(10,201)])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;создаем просто пустое A&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A = set()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Вместо удаления икса&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A.remove(x)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Делаем добавление этого икса&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A.add(x)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;НЕ ЗАБЫВАЕМ, ЧТО НАМ МОГУТ ПОПАСТЬСЯ РВАННЫЕ ОТРЕЗКИ&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Что же делать с задачами, где задаются &lt;em&gt;два&lt;/em&gt; выражения? Не пугаемся, кодом это тоже работает. Просто задаем две &lt;strong&gt;отдельные&lt;/strong&gt; функции, два &lt;strong&gt;отдельных&lt;/strong&gt; сета и два &lt;strong&gt;отдельных&lt;/strong&gt; фора.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                                    # Р = [30, 45] и Q = [40, 55].
                                                    # Какова наименьшая возможная длина интервала A,
                                                    # что обе приведённые ниже формулы истинны при любом значении переменной х:
                                                    # ( ¬(x ∈ A) → (¬(x ∈ P))
                                                    # ((x ∈ Q)→ (x ∈ A))
                                                    #
def f1(x, A1):                                      # первая функция
    return ((x not in A1) &amp;lt;= (x not in P))          #
                                                    #
def f2(x,A2):                                       # вторая функция
    return((x in Q) &amp;lt;= (x in A2))                   #
                                                    #
                                                    #
p1, p2, q1, q2 = 30, 45, 40, 55                     #
                                                    #
P = [i / 10 for i in range(p1 * 10, p2 * 10 + 1)]   #
Q = [i / 10 for i in range(q1 * 10, q2 * 10 + 1)]   #
                                                    #
A1 = set()                                          # первый сет
A2 = set()                                          # второй сет
                                                    #
for x in [i / 10 for i in range(200, 600)]:         # первый цикл (для первого сета)
    if not f1(x, A1):                               #
        A1.add(x)                                   #
                                                    #
for x in [i / 10 for i in range(200, 600)]:         # второй цикл (для второго сета)
    if not f2(x, A2):                               #
        A2.add(x)                                   #
                                                    #
print('1', sorted(A1))                              # на выводе получаем
print('2', sorted(A2))                              # два отрезка, которые пересекаются
                                                    # [30;45]
                                                    # [40;55]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Еще есть задачи на две переменные. Тут совсем ничего не понятно, просто посмотрите код.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import itertools                                                        


def f(x, y, A):
    return ((x in A) &amp;lt;= (x * x &amp;lt;= 81)) and ((y * y &amp;lt;= 36) &amp;lt;= (y in A))


A = set(range(-100, 100))

for x, y in itertools.product(range(-100, 100), repeat=2):
    if not f(x, y, A):
        A.remove(x)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Итертулс импортируем для перебора &lt;strong&gt;всех&lt;/strong&gt; комбинаций &lt;em&gt;x&lt;/em&gt; и &lt;em&gt;y&lt;/em&gt;.&lt;br&gt;
Не нравятся мне эти дурацкие задачи с двумя переменными.&lt;/p&gt;
&lt;h2&gt;
  
  
  Функции
&lt;/h2&gt;

&lt;p&gt;Для выполнения этого типа заданий нужно, как ни странно, задать функцию.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                                                    # ¬ДЕЛ(x, А) → (ДЕЛ(x, 6) → ¬ДЕЛ(x, 9))
                                                                    # найти A max
                                                                    #
def f(a, b):                                                        # задаем функцию (в нашем случае дел)
    return a % b == 0                                               #
                                                                    #
                                                                    #
A = 1                                                               # начальное значение А
while True:                                                         # бесконечный цикл
    for x in range(1,1000000):                                      # перебираем иксы
        if not ((not f(x, A)) &amp;lt;= ((f(x, 6)) &amp;lt;= (not (f(x, 9))))):   # действуем от обратного (если не сработала, то
            break                                                   # выходим из цикла)
    else:                                                           # иначе (если не вышли)
        print(A)                                                    # принтим А
    A += 1                                                          # увеличиваем А
                                                                    # если нужно max значение, то ждем, пока не перестанет
                                                                    # выводить, если min, то первое число - наш ответ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Неравенства
&lt;/h2&gt;

&lt;p&gt;Аналогично с &lt;em&gt;функциями&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                                                            # (x · y &amp;lt; 100) ∨ (y ≥ A) ∨ (x &amp;gt; A)
                                                            # найти max A при любых x и y
                                                            #
A = 1                                                       # начальное значение A
while True:                                                 # бесконечный цикл
    for x in range(3000):                                   # перебор иксов
        for y in range(3000):                               # перебор игреков
            if not ((x * y &amp;lt; 100) or (y &amp;gt;= A) or (x &amp;gt; A)):  # действуем от обратного (если не сработала, то
                break                                       # выходим из цикла). прошу обратить ваше внимание
        else:                                               # на конструкцию из break'ов и continue
            continue                                        #
        break                                               #
    else:                                                   # иначе (если не вышли)
        print(A)                                            # принтим А
    A += 1                                                  # увеличиваем А
                                                            # если нужно max значение, то ждем, пока не перестанет
                                                            # выводить, если min, то первое число - наш ответ
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Задание 16 (1-2 мин.)
&lt;/h1&gt;

&lt;p&gt;Хочешь считай ручками, но мне легче переписать условие.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 17 (1-3 мин.)
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 18 (2-3 мин.)
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задания 19-21 (5 мин.)
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 22 (1 мин.)
&lt;/h1&gt;

&lt;p&gt;Тут все точно также, как и в &lt;strong&gt;задании 6&lt;/strong&gt;. Хочешь решать ручками? Решай. Я просто перепишу код и запущу фор.&lt;/p&gt;

&lt;h1&gt;
  
  
  Задание 23
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 24
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 25
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 26
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Задание 27
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Где решать задачки?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://informatika.shkolkovo.net"&gt;Школково&lt;/a&gt;&lt;br&gt;
&lt;a href="https://kpolyakov.spb.ru"&gt;Поляков&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ege.sdamgia.ru"&gt;РешуЕГЭ&lt;/a&gt;&lt;br&gt;
&lt;a href="https://kompege.ru"&gt;КомпЕГЭ&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
