М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

PYTHON 3 Вася захотел сделать на Новый год особую гирлянду. В его гирлянде N цветных шариков. Вася хочет запрограммировать работу гирлянды так, чтобы шарики загорались поочередно с определённым шагом K. Так как гирлянда у Васи образует кольцо, то после N-го шарика счёт продолжается с первого шарика. Напишите, в какой последовательности будут загораться шарики на гирлянде у Васи.

Входные данные

В одной строке даны два натуральных числа N и K, не превышающие 100.

Выходные данные

Выведите N чисел в одной строке через пробел – порядок загорания шариков в гирлянде.

👇
Открыть все ответы
Ответ:
rsavka59
rsavka59
30.01.2020

from collections import deque

 

n, k = map(int, input().split())

x, d, ssum = list(map(int, input().split())), deque(), 0

b = [(0,0) for i in range(n)]

for i in range(n):

   ssum += x[i]

   if i >= k :

       ssum -= x[i - k]

       if d[0] == i - k :

           d.popleft()

   while len(d) and x[d[-1]] >= x[i]:

       d.pop()

   d.append(i)

   if i >= k - 1:

       nb = (b[i-k][0] + x[d[0]] * ssum, i-k+2)

       b[i] = max(b[i-1], nb, key=lambda x: x[0])

i = n - 1

d = deque()

j = b[-1][1]

d.appendleft(j)

while i !=0:

   i -= 1

   j1 = b[i][1]

   if j-k>=j1 and j1 > 0 :

       d.appendleft(j1)

       j = j1

print(str(len(d)))

print(" ".join(map(str, d)))

4,6(62 оценок)
Ответ:
ksenla200xxx
ksenla200xxx
30.01.2020
4 а)
const n=10;
var a:array[1..n] of integer; i,k:integer;
begin
writeln('Исходный массив: ');
for i:=1 to n do begin
a[i]:=random(10);
write(' ',a[i]);
end;
writeln;
for i:=1 to n do begin
if ((i mod 2) = 0) then
a[i]:=a[i]*2
else
a[i]:=a[i]*3;
end;
writeln('Конечный массив: ');
for i:=1 to n do 
write(' ',a[i]);
end.
б)
const n=10;
var a:array[1..n] of integer; i,k:integer;
begin
writeln('Исходный массив: ');
for i:=1 to n do begin
a[i]:=random(10);
write(' ',a[i]);
end;
writeln;
for i:=1 to n do begin
if ((i mod 2) = 0) then
a[i]:=a[i]-a[i]*2;
end;
writeln('Конечный массив: ');
for i:=1 to n do 
write(' ',a[i]);
end.
5 a)
const n=10;
var a:array[1..n] of integer; i,k:integer;
begin
k:=0;
writeln('Исходный массив: ');
for i:=1 to n do begin
a[i]:=random(10);
write(' ',a[i]);
end;
writeln;
for i:=1 to n do begin
if (i>2) and (a[i]>a[i-1]) then
k:=k+1;
end;
writeln('Конечный массив: ');
for i:=1 to n do
 write(' ',a[i]);
writeln;
write('Кол-во элементов больших соседа слева ',k);
end.
5 б)
const n=10;
var a:array[1..n] of integer; z,i,k:integer;
begin
k:=0;
z:=0;
writeln('Исходный массив: ');
for i:=1 to n do begin
a[i]:=random(10);
write(' ',a[i]);
end;
writeln;
for i:=1 to n do begin
if ((i mod 2) = 0) then
k:=k+1;
if k=2 then
 begin 
k:=0;
z:=z+1;
end;
end;
writeln('Конечный массив: ');
for i:=1 to n do 
write(' ',a[i]);
writeln;
write('Кол-во четных пар: ',z);
end.
6 а)
const n=10;
var a:array[1..n] of integer; s,k,i:integer;
sr:real;
begin
s:=0;
k:=0;
writeln('Исходный массив: ');
for i:=1 to n do begin
a[i]:=random(10);
write(' ',a[i]);
end;
writeln;
for i:=1 to n do begin
if ((a[i] mod 2) = 0) and ((i mod 2) <> 0) then
begin
s:=s+a[i];
k:=k+1;
end;
end;
sr:=s/k;
writeln('Конечный массив: ');
for i:=1 to n do 
write(' ',a[i]);
writeln;
write('Среднее арифметическое четных элементов с нечетными индексами: ',sr);
end.
4,8(35 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ