Задача A. Ёлка Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Ограничение по времени: 0,5 секунд Ограничение по памяти: 256 мегабайт Алихан собирается нарядить ёлку к Новому году. Чтобы это сделать, он представил ёлку в виде n уровней. Алихан решил, что с каждым уровнем количество игрушек на этом уровне ёлки будет на два больше, чем на предыдущем. После этого он отправился в магазин за игрушками. Таким образом, он использовал одну игрушку, чтобы нарядить первый уровень, три — второй уровень, пять — третий уровень, и так до уровня n (известно, что на уровне n количество игрушек 2n-1). Сколько игрушек купил Алихан, если он нарядил все n уровней? Формат входных данных: На единственной строке находится число n — количество уровней, на которые Алихан разделил ёлку. Формат выходных данных: На единственной строке выведите количество игрушек, которые были куплены Алиханом. Система оценки: Для 24% тестов — (1 ⩽ n ⩽ 10²), для 42% тестов — (1 ⩽ n ⩽ 10⁵), для 34% тестов — (1 ⩽ n ⩽ 10⁹). Примеры: стандартный ввод 2 -> стандартный вывод 4; стандартный ввод 3 -> стандартный вывод 9. Задача B. Арсен Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт Так как Арсен является тренером знаменитого футбольного клуба «Арсенал», он решил позаботиться о будущем клуба и объявил набор в футбольный кружок для юношей. Количество детей, пришедших в кружок, — n оказалось очень большим числом. Тем не менее, Арсен не хочет никого обидеть и хочет распределить всех детей в команды ровно по 11 человек. Получится ли у него? Формат входных данных: В первой строке дано целое число n (1 ⩽ n ⩽ 10¹⁰⁰⁰) — количество детей, пришедших в кружок. Формат выходных данных: В первой строке выведите слово «YES» (без кавычек), если возможно всех распределить по командам, иначе — «NO» (без кавычек). Система оценки: Для 38% тестов — (1 ⩽ n ⩽ 10⁹), для 62% тестов — (1 ⩽ n ⩽ 10¹⁰⁰⁰). Примеры: стандартный ввод 121 -> стандартный вывод YES; стандартный ввод 1000 -> стандартный вывод NO. Задача C. Работа Имя входного файла: стандартный ввод Имя выходного файла: стандартный вывод Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт Жарасхан работает в крупной корпорации «ӘСЕМ». У Жарасхана есть n документов, выложенных в ряд. В каждом документе содержится секретное число aᵢ. Также у Жарасхана есть некоторые поручения от начальника. Есть 3 типа поручений: - В поручениях первого типа начальник просит сообщить секретное число в самом левом документе, а затем уничтожить этот документ. - В поручениях второго типа начальник просит сообщить секретное число в самом правом документе, а затем уничтожить этот документ. - В поручениях третьего типа начальник просит сообщить секретное число в документе, который лежит в середине всех документов, а затем уничтожить этот документ. Если у списка документов нет серединного документа, выбрать документ, который лежит слева от середины. Но Жарасхан заранее знает, что начальство даст все поручения в повторяющемся порядке. А именно: начальник даст поручение первого типа, затем второго, затем третьего, и ещё раз первого, второго, третьего и так далее, пока список документов не окажется пуст. Жарасхан очень занят другими поручениями. Он просит вас помочь, иначе он лишится работы. Формат входных данных: В первой строке входных данных содержится единственное целое положительное число n (1 ⩽ n ⩽ 10⁵) — количество документов в списке. Вторая строка содержит n целых чисел aᵢ (1 ⩽ aᵢ ⩽ 10⁹) — секретные числа в документах. Формат выходных данных: Выведите n чисел — секретные числа, которые должен Жарасхан сообщить начальнику после каждой операции. Система оценки: 56% тестов имеют ограничения 1 ⩽ n ⩽ 1000, 44% тестов имеют ограничения 1 ⩽ n ⩽ 10⁵. В данной задаче ровно 50 тестов. За каждый пройденный тест участник получает 2 балла. Пример: стандартный ввод 6 4 5 9 8 6 7 -> стандартный вывод 4 7 9 5 6 8.
Ответы на вопрос
Задача A. Ёлка
Количество игрушек по уровням: \(1, 3, 5, \ldots, 2n-1\). Это первые \(n\) нечётных чисел. Их сумма равна:
\[ 1+3+5+\ldots+(2n-1)=n^2 \]
Значит, нужно вывести \(n^2\).
Пример решения на C++:
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
cout << n * n;
return 0;
}
Задача B. Арсен
Число \(n\) может быть очень большим, до \(10^{1000}\), поэтому его нужно читать как строку. Нужно проверить, делится ли число на \(11\).
Признак делимости на \(11\): разность между суммой цифр на нечётных и чётных позициях должна делиться на \(11\).
Пример решения на C++:
#include <iostream>
#include <string>
using namespace std;
int main() {
string n;
cin >> n;
int s1 = 0, s2 = 0;
for (int i = 0; i < n.size(); i++) {
if (i % 2 == 0) s1 += n[i] - '0';
else s2 += n[i] - '0';
}
if ((s1 - s2) % 11 == 0) cout << "YES";
else cout << "NO";
return 0;
}
Задача C. Работа
Нужно быстро удалять элементы слева, справа и из середины. Для этого удобно хранить документы в структуре, где удаление по итератору работает быстро, например в list. Указатель на середину нужно аккуратно двигать после каждого удаления.
Но для школьного уровня проще объяснить идею: при \(n\le 10^5\) можно использовать две очереди или список с итератором на середину, чтобы каждая операция выполнялась за \(O(1)\), а всё решение — за \(O(n)\).
Порядок операций повторяется так:
- 1-я операция: взять левый документ;
- 2-я операция: взять правый документ;
- 3-я операция: взять средний документ, если середины нет — левый от середины;
- затем снова 1-я, 2-я, 3-я.
Для примера \(4, 5, 9, 8, 6, 7\): сначала берём \(4\), потом \(7\), потом средний слева \(9\), затем \(5\), \(6\), \(8\). Ответ: \(4\ 7\ 9\ 5\ 6\ 8\).
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

