Максу нужно провести 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. заранее !
#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");}
В отличие от цикла 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 условие выполняется, цикл прерывается.