Ответ
Задание 1. Пиратский турнир
Пираты хотят провести соревнование по метанию ножей. Для этого используются квадратные щиты размером N×N. У мишени должны быть квадратные кольца, цвета которых чередуются: белый центр, затем чёрное кольцо, следом белое кольцо и т.д. Каждое кольцо имеет ширину в 1 клетку. На рисунке ниже изображена центральная часть щита.
Одна мишень упала за борт, и вся чёрная краска смылась. Чтобы купить необходимое количество чёрной краски для восстановления мишени, нужно посчитать количество клеток 1×1, которые потребуется закрасить. К сожалению, у всех пиратов плохо с арифметикой. Помогите им и определите, сколько клеток всего нужно закрасить, чтобы восстановить мишень. При N=11:
При N=19:
ответ:
72
128
Задание 2. Перепутанные цифры
Маша сказала Пете день и месяц своего рождения, чтобы он мог её поздравить. Но, как назло, у Пети все цифры перепутались в голове и он забыл точную дату, зато запомнил все цифры, содержащиеся в этой дате.
Помогите Пете: определите все варианты даты, которые можно получить из набора цифр 1, 0, 2, 4. Каждый ответ записывайте в отдельное поле, добавляя их при необходимости. Сначала укажите день, потом месяц. Если значение дня или месяца меньше 10, необходимо в начале указывать 0. В каждой дате должны присутствовать все цифры из набора: 1, 0, 2, 4.
Например, из набора цифр 2, 0, 2, 4 правильным ответом являются такие даты:
22 04
24 02
А, например, пары чисел 42 02 и 04 22 не задают корректные даты, потому что не существует 42-го дня и 22-го месяца.
ответ:
25 01
15 02
12 05
21 05
25 10
05 12
Задание 4. Последовательность
Постройте последовательность чисел, в которой каждое следующее число получается из предыдущего с помощью одной из трёх операций: Прибавить к числу 3.Прибавить к числу 5. Переставить цифры числа в любом порядке (нельзя, чтобы новое число начиналось с 00).
Например, из числа 508 можно сделать 511, 513, 580, 805, 850.
Рассмотрим одну из возможных последовательностей:15, 18, 81, 86
С числом 15 проделали первую операцию, получилось 18. Затем произвели третью операцию, получилось 81. Выполним с числом 81 вторую операцию и получим 86. Таким образом, получилась последовательность, которая начинается с числа 15, а заканчивается на число 86.
Ответьте на вопросы. Чем короче будут ваши последовательности, тем больше баллов вы получите.
1) Запишите последовательность чисел, которая начинается с числа 10, а заканчивается на число 17. Каждое следующее число необходимо получить из предыдущего с помощью одной из приведённых в условии операций. Числа записывайте через пробел.
2) Запишите последовательность чисел, которая начинается с числа 10, а заканчивается на число 150. Каждое следующее число необходимо получить из предыдущего с помощью одной из приведённых в условии операций. Числа записывайте через пробел.
Ответ:
1) 10 15 51 56 61 66 71 17
2) 10 13 16 19 91 94 97 100 105 150
Задание 5. Задание 1. Полосатая раскраска
Маша взяла чистый лист бумаги размером N×M, разбитый на клетки со сторонами 1×1, и покрасила A строк и B столбцов в один из своих любимых цветов.
Определите, сколько на листе осталось незакрашенных клеток.
Формат входных данных
В отдельных строках вводится по одному числу N, M, A, B (1≤N, M≤100; 0≤A≤N; 0≤B≤M именно в таком порядке).
Формат выходных данных
В единственной строке выведите количество незакрашенных клеток.
Система оценки
Решения, правильно работающие при B=0, получат 30 баллов.
Замечание
На рисунках изображены два из возможных вариантов покраски.
Как можно видеть, на листе остаются 2 незакрашенные клетки. Можно показать, что количество незакрашенных клеток не зависит от того, какие именно строки и столбцы выбрала Маша.
Ввод
3
5
2
3
Вывод
2
Ответ
#include <iostream>int main() {int N, M, A, B;std: :cin >> N >> M >> A >> B;int total_cells = N * M;int painted cells = A * M + B * N — A * B; int unpainted_cells = total_cells — painted_cells;std: : cout << unpainted_cells << std: : endl;return 0;
Задание 6. Перчатки
Учитель принёс в класс две коробки, в одной из которых лежат только левые перчатки, а в другой только правые. Перчатки могут быть либо белыми, либо чёрными. Каждый ученик не глядя взял по одной перчатке из каждой коробки и надел их на руки.
Когда все ученики надели перчатки, оказалось, что у A ребят на обеих руках надеты белые перчатки, у B ребят на правой руке надета белая перчатка, а на левой чёрная, у C ребят, напротив, на правой руке надета чёрная перчатка, а на левой белая, и, наконец, у D ребят на обеих руках чёрные перчатки.
Теперь учитель попросил учеников взяться за руки и выстроиться в как можно более длинную цепочку, при этом: каждый ученик должен стоять лицом к учителю; ученики могут взяться за руки, только если цвет перчаток на их руках совпадает.
Определите длину максимально возможной цепочки, которую могут образовать ученики.
Формат входных данных
В четырёх строках вводятся четыре числа A, B, C, D (0≤A, B, C, D≤108), описанные в условии задачи.
Формат выходных данных
Выведите одно целое число длину самой длинной цепочки, в которую могут выстроиться школьники, соблюдая условия задания учителя.
Система оценки
В этой задаче 20 тестов, каждый из которых проверяется и оценивается независимо в 5 баллов.
Замечание
В первом примере можно выстроить в цепочку всех четверых детей:
Во втором примере можно соединить только троих:
Ввод
1
1
1
1
Вывод
4
Ввод
0
3
1
0
Вывод
3
Ответ
C++#include<iostream>#include<vector>#include<algorithm>#include <string>#include <random>using namespace std;int main() {int a, b, c, d; cin >> a >> b >> c >> d;if (!b && !c)cout << max(a, d);else if (b == c)cout << a + d + b + c;elsecout << a + d + min(b, c) * 2 + 1;}
Задание 7. Странная планета
Космонавт высадился на планете, очень похожей на Землю, чтобы провести важный эксперимент. Он знает, что дата начала эксперимента D1M1Y1 (день, месяц, год), а дата окончания D2M2Y2. Однако выяснилось, что календарь этой планеты отличается от земного в году N месяцев, i-й месяц года имеет длительность Li дней.
Помогите космонавту рассчитать, сколько дней продлится эксперимент на этой планете, учитывая, что в его продолжительность входят дни начала и окончания.
Формат входных данных
Первая строка содержит целое число D1 (1≤D1≤105) день начала эксперимента.
Вторая строка содержит целое число M1 (1≤M1≤105) месяц начала эксперимента.
Третья строка содержит целое число Y1 (1≤Y1≤105) год начала эксперимента.
Четвёртая строка содержит целое число D2 (1≤D2≤105) день окончания эксперимента.
Пятая строка содержит целое число M2 (1≤M2≤105) месяц окончания эксперимента.
Шестая строка содержит целое число Y2 (1≤Y2≤1051≤Y2≤105) год окончания эксперимента.
Седьмая строка содержит целое число N (1≤N≤1051≤N≤105) число месяцев в году на странной планете.
Следующие N строк содержат N целых чисел Li (1≤Li≤105) по одному числу в строке длительности месяцев на странной планете.
Гарантируется, что дата окончания эксперимента не раньше даты начала и что обе даты корректны.
Формат выходных данных
Выведите одно целое число продолжительность эксперимента, выраженную в днях.
Обратите внимание, что ответ может превышать возможное значение 32‑битной целочисленной переменной, поэтому необходимо использовать 64‑битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Система оценки
Решения, правильно работающие при M1=M2, Y1=Y2, будут оцениваться в 15 баллов.
Решения, правильно работающие при Y1=Y2, будут оцениваться в 40 баллов.
Замечание
В первом примере дата начала эксперимента 40.4.2024 (день.месяц.год), дата окончания 45.4.2024. Легко видеть, что эксперимент начинается и заканчивается в одном месяце одного года и длится с 40 по 45 день включительно, то есть 6 дней.
Во втором примере дата начала эксперимента 40.4.2024, дата окончания 2.2.2025. Всего в году 7 месяцев. Продолжительность месяца с номером 4 равна 72 дням. В эксперимент войдут последние 33 дня четвёртого месяца 2024 года, полностью войдут пятый, шестой и седьмой месяцы 22024, первый месяц 2025 и два дня второго месяца 2025 года
Ввод
40
4
2024
45
4
2024
7
12
3
60
72
40
22
5
Вывод
6
Ввод
40
4
2024
2
2
2025
7
12
3
60
72
40
22
5
Вывод
114
Решение на питоне
d1 = [int(input()) for i in range(3)]d2 = [int(input()) for i in range(3)]d = [d1, d2]n = int(input())1 = [[i,int(input())] for i in range(n)]1 = sorted(1)psum = [1[0][1]] * nfor i in range(1, n): psum[i] = psum[i-1] + 1[i][1]psum = sorted(psum)psum = [0] + psumyear = sum([x for (i,x) in 1])× = 2 * [0]for i in range(2):x[i] = d[i][0] + psum[d[i][1] — 1] + (d[i][2] — 1) * yearprint(x[1] — x[0] + 1)