Задача C. Работа Имя входного файла: стандартный ввод Имя выходного файла: стандартный...

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

Задача 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] Эти поручения обрабатываются и дальше по такому же порядку.


Информатика (15 баллов) | 605 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
    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.

(55.0k баллов)