Чемпионат по устному счету Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Председатель жюри чемпионата по устному счету Иван Михайлович Минусов придумал новое
задание для участников чемпионата. Исходно на доске выписывается n целых чисел: a1, a2, . . . , an.
После этого участник должен выполнять команды двух типов:
1. Стереть i-е число с доски и записать вместо него число x. То есть, если на доске
были записаны числа a1, a2, . . . , an, то после выполнения команды числа будут равны:
a1, . . . , ai−1, x, ai+1, . . . , an.
2. Циклически сдвинуть последовательность чисел на k вправо. То есть, если на доске
были записаны числа a1, a2, . . . , an, то после выполнения команды числа будут равны:
an−k+1, an−k+2, . . . , an, a1, a2, . . . , an−k.
После выполнения каждой команды участник должен вычислить сумму всех чисел, записанных
на доске, и сообщить ее жюри. Чтобы подготовиться проверять ответы участников, членам жюри
необходимо самим вычислить требуемые суммы.
Формат входных данных
В первой строке записано целое число n — количество чисел, изначально записанных на доске
(2 6 n 6 105
).
Во второй строке через пробел записаны n целых чисел: a1, a2, . . . , an — числа, изначально выписанные на доске — (−109 6 ai 6 109
).
В третьей строке записано целое число q — количество команд, которые необходимо выполнить
(1 6 q 6 105
).
В каждой из следующих q строк записана очередная команда в следующем формате:
• 1 i x — это означает, что что участник должен заменить i-е число последовательности на
число x (1 6 i 6 n; −109 6 x 6 109
).
• 2 k — это означает, что участник должен циклически сдвинуть последовательность чисел на
k вправо (1 6 k < n).
Формат выходных данных
В качестве ответа выведите q строк, в каждой из которых записано одно целое число.
В i-й строке должна быть записана сумма чисел на доске после выполнения первых i команд.
Я бы написал по другому
Program vozvedenie_v_stepen;
var a,b:integer;
begin
writeln ('Введите число, которое будем возводить в степень');
readln (a);
writeln ('Введите число, обозначающее степень, в которую будем возводить');
readln (b);
Writeln (a,' в степени ',b,' = ',exp(b*ln(a)));
end.
Извиняюсь за неправильный ответ. Не увидел, что вам нужно с циклом. Тогда лучше так...
Program vozvedenie_v_stepen;
var a,b,c,d:integer;
begin
writeln ( 'Введите число, которое будем возводить в степень' );
readln (a);
c:=a;
writeln ( 'Введите число, обозначающее степень, в которую будем возводить');
readln (b);
for d:= 2 to b do
a:=a*c;
if b=0 then
writeln(1)
else
writeln (c,' в степени ',b,' = ',a);
end.
Непонятно, что за "надписи".
Предположим, что
1. "бабушка попросила"
2. "взяла лукошко"
3. "подошла к кусту"
4. "сорвала ягоду"
5. "сварили варенье"
тогда логика задачи будет следующей
бабушка попросила
Если Маша согласилась тогда
взяла лукошко
подошла к кусту
Если куст с ягодами Тогда
Пока (на кусте есть ягоды) и (лукошко пустое) Цикл
сорвала ягоду
КонецЦикла
КонецЕсли
сварили варенье
КонецЕсли
В принципе, если несколько кустов, нужен цикл обхода по кустам пока не наполнится лукошко.