Задача A. Ёлка Имя входного файла: стандартный ввод Имя выходного файла: стандартный...

0 голосов
175 просмотров

Задача A. Ёлка
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 0.5 секунд
Ограничение по памяти: 256 мегабайт
Алихан собирается нарядить ёлку к Новому году. Чтобы это сделать, он представил ёлку в виде
n уровней.
Алихан решил, что с каждым уровнем, количество игрушек на этом уровне елки будет на два
больше чем на предыдущем. После этого он отправился в магазин за игрушками.
Таким образом, он использовал одну игрушку, чтобы нарядить первый уровень, три — второй
уровень, пять — третий уровень, и так до уровня n (известно, что на уровне n количество игрушек
2 n 1). Сколько игрушек купил Алихан, если он нарядил все n уровней?
Формат входных данных
На единственной строке находится число n - количество уровней, на которые Алихан разделил
ёлку.
Формат выходных данных
На единственной строке выведите количество игрушек, которые были куплены Алиханом.
Система оценки
Для 24% тестов — (1 ⩽ n ⩽ 102)
Для 42% тестов — (1 ⩽ n ⩽ 105)
Для 34% тестов — (1 ⩽ n ⩽ 109)
Примеры
стандартный ввод стандартный вывод
2 4
3 9
Замечание
В первом примере: 1 + 3 = 4. Во втором примере: 1 + 3 + 5 = 9.
Страница 1 из 3
2-й этап Республиканской олимпиады по информатике 2017, 8-9 класс, *ДЕНЬ 1*
Kazakhstan, December, 7, 2017
Задача B. Арсен
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Так как, Арсен является тренером знаменитого футбольного клуба Арсенал, он решил позабо-
титься о будущем клуба и объявил набор в футбольный кружок для юношей. Количество детей
пришедших в кружок — n оказалось очень большим числом. Тем не менее, Арсен не хочет никого
обидеть и хочет распределить всех детей в команды ровно по 11 человек. Получится ли у него?
Формат входных данных
В первой строке дано целое число n (1 ⩽ n ⩽ 101000) — количество детей пришедших в кружок.
Формат выходных данных
В первой строке выведите слово «YES» (без кавычек), если возможно всех распределить по
командам, иначе, «NO» (без кавычек).
Система оценки
Для 38% тестов — (1 ⩽ n ⩽ 109)
Для 62% тестов — (1 ⩽ n ⩽ 101000)
Примеры
стандартный ввод стандартный вывод
121 YES
1000 NO
Замечание
В первом примере, число 121 без остатка делится на 11, поэтому, ответ «YES».
Во втором примере, число 1000 не делится на 11 без остатка, поэтому, ответ «NO».
Страница 2 из 3
2-й этап Республиканской олимпиады по информатике 2017, 8-9 класс, *ДЕНЬ 1*
Kazakhstan, December, 7, 2017
Задача C. Работа
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Жарасхан работает в крупной корпорации "ӘСЕМ".
У Жарасхана есть n документов выложенных в ряд. В каждом документе содержится секретное
число ai. Также у Жарасхана есть некоторые поручения от начальника. Есть 3 типа поручений:
В поручениях первого типа начальник просит сообщить секретное число в самом левом доку-
менте, а затем уничтожить этот документ.
В поручениях второго типа начальник просит сообщить секретное число в самом правом до-
кументе, а затем уничтожить этот документ.
В поручениях третьего типа начальник просит сообщить секретное число в документе кото-
рый лежит в середине всех документов, а затем уничтожить этот документ. Если у списка
документов нет серединного документа, выбрать документ который лежит слева от середины.
Но Жарасхан заранее знает что начальство даст все поручения в повторяющемся порядке. А
именно начальник даст поручение первого типа, затем второго, затем третьего, и еще раз первого,
второго, третьего и так далее пока список документов не окажется пуст.
Жарасхан очень занят другими поручениями. Он просит вас помочь, иначе он лишится работы.
Формат входных данных
В первой строке входных данных содержит единственное целое положительное число n
(1 ⩽ n ⩽ 105) — количество документов в списке.
Вторая строка содержит n целых чисел ai (1 ⩽ ai ⩽ 109) — секретные числа в документах.
Формат выходных данных
Выведите n чисел — секретные числа которых должен Жарасхан сообщить начальнику после
каждой операции.
Система оценки
56% тестов имеют ограничения 1 ⩽ n ⩽ 1000
44% тестов имеют ограничения 1 ⩽ n ⩽ 105
В данной задаче ровно 50 тестов.
За каждый пройденный тест участник получает 2 балла.
Пример
стандартный ввод стандартный вывод
6
4 5 9 8 6 7
4 7 9 5 6 8
Замечание
В первом тестовом примере удаляется первое число. Оставшиеся документы: [5, 9, 8, 6, 7] Затем
удаляется последнее число. Оставшиеся документы: [5, 9, 8, 6] Так как список не имеет серединного
документа, следует выбрать число которое лежит слева от середины. Оставшиеся документы: [5, 8,
6] Эти поручения обрабатываются и дальше по такому же порядку.
Страница 3


Информатика (15 баллов) | 175 просмотров
0

Вы издеваетесь такое количество задач в одном вопросе задавать?

0

Впринцепе 3 штуки задач вписываются в правила, но задачи не простые, дано всего 5 баллов и тд. Вообщем вероятность что ктото решит весьма не велика

0

А, вот в чем дело: задач всего 3, но они огромные, каждая - как целая самостоятельная.

0

кстати язык тоже не указан значит любой

Дан 1 ответ
0 голосов
Правильный ответ

//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
    begin
        writeln('I');
        var n := ReadInteger('n=');
        Writeln((1 + 1 + Power(2, n - 1)) * n / 2);
    end;
    
    begin
        writeln;
        writeln('II');
        var n := ReadInteger('n=');
        Writeln(n mod 11 = 0 ? 'YES' : 'NO');
        
    end;
    
    begin
        writeln;
        writeln('III');
        var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
        writeln;
        
        while a.Any() do
        begin
            write(a[0], ' ');
            a.RemoveAt(0);
            if not a.Any then break;
            
            write(a.Last, ' ');
            a.RemoveAt(a.Count - 1);
            if not a.Any then break;
            
            var n := 0;
            if a.Count > 1 then n := a.Count div 2 - 1;
            write(a[n], ' ');
            a.RemoveAt(n);
        end;
    end;
end.

(55.0k баллов)