В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
lizakaraseva0
lizakaraseva0
22.06.2021 13:14 •  Информатика

Максу нужно провести  k  соревнований. у макса уже есть  n  . для каждой известна её сложность. чтобы соревнование было наиболее интересным, в нём должны быть доступны как начинающим участникам, так и более опытным. интересность конкретного соревнования равна разности сложностей между самой трудной и самой простой данного соревнования (интересность соревнования из одной равна  0). макс хочет распределить между соревнованиями так, чтобы интересность самого скучного соревнования была максимальной и при этом не повторялись. пока макс думает над распределением , вам нужно узнать интересность самого скучного соревнования этого сезона (то есть соревнования с минимальной интересностью).

входные данные

первая строка содержит целые числа  n  и  k  (1≤k≤n≤2⋅1051≤k≤n≤2⋅105) — соответственно количество и количество соревнований.
вторая строка содержит  n  целых чисел  ai  (1≤ai≤1091≤ai≤109) — сложность .

выходные данные

выведите одно целое число — минимальную интересность среди всех  kk  проводимых соревнований.

примеры

входные данные

6 3 2 1 3 1 3 2

выходные данные

1

входные данные

7 2 8 8 8 8 1 2 3

выходные данные

6
подскажите, , алгоритм решения.
(без кода, просто словами)

p.s. желательно решение на питоне.
p.p.s. заранее !

Показать ответ
Ответ:
Ruslan0320
Ruslan0320
15.04.2020 08:19
Т.к. язык программирования не указан, сделаю на свой вкус, т.е. C++. При копировании кода из IDE на сайт автоматически удаляется перенос строки. Будет прикреплен скриншот того, как должен выглядеть код

#include <stdlib.h>#include <stdio.h>#include <locale>
void main(){ setlocale(LC_ALL, "RUSSIAN"); int i, n, an; an = 0; printf("\n Введите n ->"); scanf_s("%d", &n); for (i = 1; i <= n; i++) an = an+i; printf("\n Сумма первых n натуральных чисел равна: %d", an); an = 0; for (i = 1; i <= n; i++) an = an + i*i; printf("\n Сумма квадратов первых n натуральных чисел равна: %d", an); an = 0; for (i = 1; i <= n; i++) if (i % 2 == 0)an = an + i; printf("\n Сумма всех четных чисел в диапозоне от 1 до n: %d", an); an = 0; for (i = 10; i <= 99; i++) an = an + i; printf("\n Сумма всех двухзначных чисел равна: %d \n", an); system("pause");}

Напишите программу,которая вычисляет сумму : а)первых n натуральных чисел; б)квадратов первых n нату
0,0(0 оценок)
Ответ:
tarlavinEgor
tarlavinEgor
27.11.2022 03:00

В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.

Цикл повторяется до тех пор, пока условие записанное после ключевого слова until, будет ложным (не выполняется). Как только это условие выполнится, происходит выход из цикла.

1)Цикл выполнится 1 раз:

i:=i-1=-1

s=-1/1=-1

-1<1 условие выполняется, цикл прерывается.

2)цикл выполнится 3 раза:

1. i:=i+1=1; 1>2 условие не выполняется, цикл продолжается.

2. i:=i+1=2; 2>2 условие не выполняется, цикл продолжается.

3. i:=i+1=3 3>2 условие выполняется, цикл прерывается.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота