Лена учится играть на пианино. У нее есть n композиций, упорядоченных по возрастанию сложности. Для каждой композиции Лена знает время, которое ей потребуется для ее исполнения. Перед тем, как начать учиться, она выбирает целое число L от 1 до n включительно и строит свою программу обучения следующим образом: в первый день она играет композиции 1 , 2 , . . . , L , во второй день композиции 2 , 3 , . . . , L + 1 и так далее. В день, когда Лена играет последнюю композицию, обучение заканчивается (действительно, она же успешно сыграла самую сложную композицию).
Лена заметила, что от выбора L время, которое она проведет за исполнением композиций, меняется. Ей стало интересно, сколько времени она проведет за исполнением композиций, если выберет L = 1 , 2 , . . . , n .
Требуется написать программу, которая для каждого L = 1 , 2 , . . . , n подсчитывает суммарное время, которое Лена потратит на исполнение композиций при заданном L .
Входные данные В первой строке записано число n ( 1 ≤ n ≤ 3 ⋅ 10 5 ) – количество композиций. В следующей строке через пробел записаны n чисел a 1 , a 2 , . . . , a n ( 1 ≤ a i ≤ 10 7 ) , где a i – время исполнения i -й композиции
Выходные данные Выведите n чисел через пробел – суммарное время для L = 1 , 2 , . . . , n соответственно.
Система оценки Решения, работающие правильно при n ≤ 5 , будут набирать не менее
Решения, работающие правильно при n ≤ 300 , будут набирать не менее
Решения, работающие правильно при n ≤ 10 000 , будут набирать не менее
Примеры входные данные 4 1 3 2 4 выходные данные 10 15 15 10 входные данные 5 5 1 3 5 4 выходные данные 18 27 30 27 18 Примечание Обращаем ваше внимание на то, что ответ в данной задаче может быть достаточно большим, поэтому рекомендуем использовать 64-битный тип данных. В C++ для этого предусмотрен тип long long, в Pascal – int64.
Так же, давайте разберем первый пример из условия:
При L = 1 В первый день Лена потратит 1 минуту
Во второй – 3 минуты
В третий – 2 минуты
И в четвертый – 4 минуты
Итого 1+3+2+4=10 минут
При L = 2 В первый день Лена потратит 1+3=4 минуты
Во второй – 3+2=5 минут
В третий – 2+4=6 минут и закончит обучение, так как сыграет последнюю композицию
Итого 4+5+6=15 минут
При L = 3 В первый день Лена потратит 1+3+2=6 минут
Во второй – 3+2+4=9 минут
Итого 6+9=15 минут
При L = 4 В первый и единственный день Лена потратит 1+2+3+4=10 минут
var arr : arr2; n : integer; i, sot, spl, snu : byte; ch : char;
begin write('Хотите использовать заданный по умолчанию массив? (y/n): '); ch := readkey; writeln(ch); sot := 0; spl := 0; snu := 0; if ((ch='y') or (ch='Y')) then begin { Используем заданный по умолчанию } for i:=1 to 12 do begin if arr1[i] > 0 then inc(spl); if arr1[i] < 0 then inc(sot); if arr1[i] = 0 then inc(snu); write(arr1[i], ' '); end; writeln; end else begin { Создаём и заполняем новый массив } write('Введите желаемый размер массива: '); readln(n); setLength(arr, n); writeln('Введите элементы массива:'); for i:=0 to high(arr) do readln(arr[i]); for i:=0 to high(arr) do begin if arr[i]>0 then inc(spl); if arr[i]<0 then inc(sot); if arr[i]=0 then inc(snu); write(arr[i], ' '); end; writeln; end;
Не трудно, но не полностью условие выполнено. Лови решение:
program arrs; var a : array[1..26] of integer; i, min, max : integer; m1, m2 : byte;
begin randomize; for i:=1 to 26 do begin a[i] := random(29)-15; write(a[i], ' '); end; min := 15; max := -20; for i:=1 to 26 do begin if a[i] < min then begin min:=a[i]; m1 := i; end; if a[i] > max then begin max:=a[i]; m2 := i; end; end; writeln; writeln('Минимальный элемент в ячейке ', m1, ' равен ', min); writeln('Максимальный элемент в ячейке ', m2, ' равен ', max); end.
тестовый прогон:
0 2 -1 2 -9 -13 -9 -5 0 -14 11 6 8 -11 13 3 -15 -6 -15 -14 -3 13 9 7 3 -4 Минимальный элемент в ячейке 17 равен -15 Максимальный элемент в ячейке 15 равен 13
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку