ОГЭ по информатике · задание 6

Программа с условием: подобрать A

Дана короткая программа с условием и девять запусков с парами чисел. Нужно сосчитать ответы программы или найти параметр A, при котором она напечатает нужный ответ ровно k раз.

Что нужно знать

  • и (and) — истинно, только когда верны оба условия.
  • или (or) — истинно, когда верно хотя бы одно.
  • «Ровно k раз» — не больше и не меньше.

Как решать

  1. Выписать пары, для которых ответ не зависит от A.
  2. Для остальных понять, при каких A условие выполняется.
  3. Найти границу и проверить соседние значения A.

Типичные ошибки

  • Перепутать строгое и нестрогое неравенство на границе.
  • Считать «YES», когда спрашивают про «NO».
  • Забыть про отрицательные A.

Разобранные варианты

Сначала реши сам, потом открой разбор. В разборе — проверка и программа на Python.

Вариант 1

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > 4 or t > A:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > 4) or (t > A)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > 4 или t > A
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (-2, 3); (4, 0); (6, -6); (7, 7); (0, -2); (7, -5); (-7, 3); (13, 3); (-9, -4). Сколько было запусков, при которых программа напечатала «YES», если в качестве A вводилось число 10?

Разбор

Подставляем A = 10 в условие s > 4 or t > A для каждой пары:

stВывод
-23NO
40NO
6-6YES
77YES
0-2NO
7-5YES
-73NO
133YES
-9-4NO

«YES» напечатано 4 раз.

Ответ: 4

Решение на Python.

pairs = [(-2, 3), (4, 0), (6, -6), (7, 7), (0, -2), (7, -5), (-7, 3), (13, 3), (-9, -4)]
A = 10
count = 0
for s, t in pairs:
    if s > 4 or t > A:
        count += 1
print(count)

Вариант 2

наибольшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s < A and t > 2:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s < A) and (t > 2)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s < A и t > 2
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (0, 11); (11, 3); (12, 15); (7, 15); (-4, -5); (-1, -1); (-6, 9); (-7, -9); (5, 14). Укажите наибольшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно 2 раз.

Разбор

Шаг 1. Разберём, какие пары дают «YES» независимо от A и какие зависят от A. Условие: s < A and t > 2.

Шаг 2. Чем больше A, тем иначе срабатывает условие; ищем границу, где «YES» печатается ровно 2 раз. Проверка соседних значений:

AСколько раз «YES»
42
52
63

Наибольшее подходящее A = 5.

Ответ: 5

Решение на Python.

pairs = [(0, 11), (11, 3), (12, 15), (7, 15), (-4, -5), (-1, -1), (-6, 9), (-7, -9), (5, 14)]

def count(A):
    c = 0
    for s, t in pairs:
        if s < A and t > 2:
            c += 1
    return c

good = [A for A in range(-1000, 1001) if count(A) == 2]
print(max(good))

Вариант 3

наибольшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s < A and t > 5:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s < A) and (t > 5)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s < A и t > 5
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (11, 9); (-6, 7); (-8, 5); (-1, 9); (2, 9); (-8, 13); (-10, 7); (-2, 8); (3, 7). Укажите наибольшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно 7 раз.

Разбор

Шаг 1. Разберём, какие пары дают «YES» независимо от A и какие зависят от A. Условие: s < A and t > 5.

Шаг 2. Чем больше A, тем иначе срабатывает условие; ищем границу, где «YES» печатается ровно 7 раз. Проверка соседних значений:

AСколько раз «YES»
107
117
128

Наибольшее подходящее A = 11.

Ответ: 11

Решение на Python.

pairs = [(11, 9), (-6, 7), (-8, 5), (-1, 9), (2, 9), (-8, 13), (-10, 7), (-2, 8), (3, 7)]

def count(A):
    c = 0
    for s, t in pairs:
        if s < A and t > 5:
            c += 1
    return c

good = [A for A in range(-1000, 1001) if count(A) == 7]
print(max(good))

Вариант 4

наибольшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A and t < 9:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) and (t < 9)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A и t < 9
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (-2, 5); (-1, -5); (-3, -1); (10, -3); (0, 4); (9, 15); (12, 3); (5, 1); (8, 2). Укажите наибольшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно 6 раз.

Разбор

Шаг 1. Разберём, какие пары дают «YES» независимо от A и какие зависят от A. Условие: s > A and t < 9.

Шаг 2. Чем больше A, тем иначе срабатывает условие; ищем границу, где «YES» печатается ровно 6 раз. Проверка соседних значений:

AСколько раз «YES»
-37
-26
-15

Наибольшее подходящее A = -2.

Ответ: -2

Решение на Python.

pairs = [(-2, 5), (-1, -5), (-3, -1), (10, -3), (0, 4), (9, 15), (12, 3), (5, 1), (8, 2)]

def count(A):
    c = 0
    for s, t in pairs:
        if s > A and t < 9:
            c += 1
    return c

good = [A for A in range(-1000, 1001) if count(A) == 6]
print(max(good))

Вариант 5

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A and t > A:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) and (t > A)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A и t > A
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (13, 5); (9, -1); (14, -8); (-12, -4); (-7, 4); (-8, 4); (8, -10); (12, 2); (-3, -3). Сколько было запусков, при которых программа напечатала «YES», если в качестве A вводилось число 1?

Разбор

Подставляем A = 1 в условие s > A and t > A для каждой пары:

stВывод
135YES
9-1NO
14-8NO
-12-4NO
-74NO
-84NO
8-10NO
122YES
-3-3NO

«YES» напечатано 2 раз.

Ответ: 2

Решение на Python.

pairs = [(13, 5), (9, -1), (14, -8), (-12, -4), (-7, 4), (-8, 4), (8, -10), (12, 2), (-3, -3)]
A = 1
count = 0
for s, t in pairs:
    if s > A and t > A:
        count += 1
print(count)

Вариант 6

наибольшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A or t > 11:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) or (t > 11)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A или t > 11
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (1, -9); (-3, 9); (15, 1); (13, 3); (-2, -8); (-7, 1); (-4, 3); (-11, -11); (8, -5). Укажите наибольшее целое значение параметра A, при котором для указанных входных данных программа напечатает «NO» ровно 6 раз.

Разбор

Шаг 1. Разберём, какие пары дают «YES» независимо от A и какие зависят от A. Условие: s > A or t > 11.

Шаг 2. Чем больше A, тем иначе срабатывает условие; ищем границу, где «NO» печатается ровно 6 раз. Проверка соседних значений:

AСколько раз «NO»
66
76
87

Наибольшее подходящее A = 7.

Ответ: 7

Решение на Python.

pairs = [(1, -9), (-3, 9), (15, 1), (13, 3), (-2, -8), (-7, 1), (-4, 3), (-11, -11), (8, -5)]

def count(A):
    c = 0
    for s, t in pairs:
        if not (s > A or t > 11):
            c += 1
    return c

good = [A for A in range(-1000, 1001) if count(A) == 6]
print(max(good))

Вариант 7

наименьшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A and t < 3:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) and (t < 3)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A и t < 3
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (1, -3); (0, 7); (11, 3); (-1, -2); (-9, 3); (10, 10); (6, -11); (12, 13); (6, -11). Укажите наименьшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно 3 раз.

Разбор

Шаг 1. Разберём, какие пары дают «YES» независимо от A и какие зависят от A. Условие: s > A and t < 3.

Шаг 2. Чем меньше A, тем иначе срабатывает условие; ищем границу, где «YES» печатается ровно 3 раз. Проверка соседних значений:

AСколько раз «YES»
-24
-13
03

Наименьшее подходящее A = -1.

Ответ: -1

Решение на Python.

pairs = [(1, -3), (0, 7), (11, 3), (-1, -2), (-9, 3), (10, 10), (6, -11), (12, 13), (6, -11)]

def count(A):
    c = 0
    for s, t in pairs:
        if s > A and t < 3:
            c += 1
    return c

good = [A for A in range(-1000, 1001) if count(A) == 3]
print(min(good))

Вариант 8

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A or t < 1:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) or (t < 1)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A или t < 1
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (14, 15); (15, 9); (11, 6); (14, -2); (-2, 11); (7, -5); (3, -5); (-7, 11); (15, 3). Сколько было запусков, при которых программа напечатала «NO», если в качестве A вводилось число -5?

Разбор

Подставляем A = -5 в условие s > A or t < 1 для каждой пары:

stВывод
1415YES
159YES
116YES
14-2YES
-211YES
7-5YES
3-5YES
-711NO
153YES

«NO» напечатано 1 раз.

Ответ: 1

Решение на Python.

pairs = [(14, 15), (15, 9), (11, 6), (14, -2), (-2, 11), (7, -5), (3, -5), (-7, 11), (15, 3)]
A = -5
count = 0
for s, t in pairs:
    if not (s > A or t < 1):
        count += 1
print(count)

Вариант 9

наибольшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A and t > A:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) and (t > A)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A и t > A
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (-4, 12); (-7, 10); (-10, -9); (-3, 5); (1, -1); (-4, 1); (14, 10); (-11, 6); (-11, -5). Укажите наибольшее целое значение параметра A, при котором для указанных входных данных программа напечатает «YES» ровно 2 раз.

Разбор

Шаг 1. Разберём, какие пары дают «YES» независимо от A и какие зависят от A. Условие: s > A and t > A.

Шаг 2. Чем больше A, тем иначе срабатывает условие; ищем границу, где «YES» печатается ровно 2 раз. Проверка соседних значений:

AСколько раз «YES»
-32
-22
-11

Наибольшее подходящее A = -2.

Ответ: -2

Решение на Python.

pairs = [(-4, 12), (-7, 10), (-10, -9), (-3, 5), (1, -1), (-4, 1), (14, 10), (-11, 6), (-11, -5)]

def count(A):
    c = 0
    for s, t in pairs:
        if s > A and t > A:
            c += 1
    return c

good = [A for A in range(-1000, 1001) if count(A) == 2]
print(max(good))

Вариант 10

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > 4 or t > A:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > 4) or (t > A)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > 4 или t > A
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (8, -1); (1, 8); (-10, -2); (-6, 5); (0, -7); (6, 11); (-8, -2); (-10, 10); (5, 13). Сколько было запусков, при которых программа напечатала «NO», если в качестве A вводилось число -2?

Разбор

Подставляем A = -2 в условие s > 4 or t > A для каждой пары:

stВывод
8-1YES
18YES
-10-2NO
-65YES
0-7NO
611YES
-8-2NO
-1010YES
513YES

«NO» напечатано 3 раз.

Ответ: 3

Решение на Python.

pairs = [(8, -1), (1, 8), (-10, -2), (-6, 5), (0, -7), (6, 11), (-8, -2), (-10, 10), (5, 13)]
A = -2
count = 0
for s, t in pairs:
    if not (s > 4 or t > A):
        count += 1
print(count)

Для самостоятельного решения

Варианты 11–15 без разборов. Ответ можно проверить кнопкой.

Вариант 11

наибольшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > 9 or t > A:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > 9) or (t > A)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > 9 или t > A
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (13, -3); (4, -7); (11, -10); (13, 9); (-12, 10); (0, -11); (4, 5); (1, 7); (-12, 6). Укажите наибольшее целое значение параметра A, при котором для указанных входных данных программа напечатает «NO» ровно 3 раз.

Вариант 12

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A or t > -1:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) or (t > -1)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A или t > -1
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (8, -10); (4, -4); (-11, -9); (14, -1); (-9, -8); (-8, -3); (-7, 5); (-10, 6); (3, 5). Сколько было запусков, при которых программа напечатала «NO», если в качестве A вводилось число -5?

Вариант 13

наименьшее A

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A or t < -1:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) or (t < -1)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A или t < -1
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (-8, -11); (-5, 4); (-9, -10); (9, 6); (9, -4); (15, -12); (-5, 0); (3, 10); (8, 11). Укажите наименьшее целое значение параметра A, при котором для указанных входных данных программа напечатает «NO» ровно 5 раз.

Вариант 14

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A and t > A:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) and (t > A)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A и t > A
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (12, 10); (5, 7); (5, 14); (5, 11); (-10, 14); (-7, -6); (-12, -7); (-4, 7); (-12, 3). Сколько было запусков, при которых программа напечатала «NO», если в качестве A вводилось число 7?

Вариант 15

сколько запусков

Ниже приведена программа, записанная на трёх языках программирования.

Python

s = int(input())
t = int(input())
A = int(input())
if s > A or t < 3:
    print("YES")
else:
    print("NO")

Паскаль

var s, t, A: integer;
begin
  readln(s);
  readln(t);
  readln(A);
  if (s > A) or (t < 3)
    then writeln('YES')
    else writeln('NO')
end.

Алгоритмический язык

алг
нач
  цел s, t, A
  ввод s
  ввод t
  ввод A
  если s > A или t < 3
    то вывод "YES"
    иначе вывод "NO"
  все
кон

Было проведено 9 запусков программы, при которых в качестве значений переменных s и t вводились следующие пары чисел: (7, -4); (-8, 9); (-2, -12); (10, -1); (5, 10); (4, -8); (-11, 11); (7, 1); (-12, 5). Сколько было запусков, при которых программа напечатала «YES», если в качестве A вводилось число -3?