punctvydachi
?>

Дан одномерный массив с (10) заполненный вручную с клавиатуры, отсортировать по возрастанию и убыванию.

Информатика

Ответы

alexst123012225
Var     c: array[1..100] of integer;   s,j,n,i: integer; begin     readln(n);     for i: =1 to n do         read(c[i]);   //сортировка по возрастанию  for j: =1 to n-1 do    for i: =1 to n-j do      if c[i]> c[i+1] then      begin        s: =c[i];         c[i]: =c[i+1];         c[i+1]: =s;       end; //вывод   for i: =1 to n do       write(c[i],' '); writeln; //сортировка по убыванию  for j: =1 to n-1 do    for i: =1 to n-j do      if c[i]< c[i+1] then      begin        s: =c[i];         c[i]: =c[i+1];         c[i+1]: =s;       end; //вывод   for i: =1 to n do       write(c[i],' ');   end.
Яковчук1911
Каждая из компонент связности должна быть кликой (иначе говоря, каждые две вершины в одной компоненте связности должны быть связаны ребром). если в i-ой компоненте связности вершин, то общее число рёбер будет суммой по всем компонентам связности: требуется найти максимум этого выражения (т.е. на самом деле - максимум суммы квадратов) при условии, что сумма всех ni равна n и ni - натуральные числа. если k = 1, то всё очевидно - ответ n(n - 1)/2. пусть k > 1. предположим,  n1 < = n2 < = < = nk - набор чисел, для которых достигается максимум, и n1 > 1. уменьшим число вершин в первой компоненте связности до 1, а оставшиеся вершины "перекинем" в k-ую компоненту связности. вычислим, как изменится сумма квадратов: поскольку по предположению n1 > 1 (тогда и nk > 1), то сумма квадратов увеличится, что противоречит предположению о том, что на выбранном изначально наборе достигается максимум. значит, максимум достигается, если наименьшая по размеру компонента связности - изолированная вершина. выкинем эту компоненту связности, останутся k - 1 компонента связности и n - 1 вершина. будем продолжать так делать, пока не останется одна вершина, тогда получится, что во всех компонентах связности кроме последней должно быть по одной вершине. итак, должно выполняться подставив в исходную формулу, получаем это и есть ответ.
oledrag7
// pascalabc.net 3.0, сборка 1128 begin   var m: =readinteger('число строк: ');   var n: =readinteger('число колонок');   var a: =matrixrandom(m,n,-10,20);   writeln('сгенерированный массив');   for var i: =0 to m-1 do begin       for var j: =0 to n-1 do write(a[i,j]: 4);       writeln       end;   writeln('найденные суммы');   for var i: =0 to m-1 do begin       var avg: =0.0;       for var j: =0 to n-1 do avg+=a[i,j];       avg/=n;       var s: =0;       for var j: =0 to n-1 do           if a[i,j]> avg then s+=a[i,j];       write(s,' ')       end;   writeln end. тестовое решение: число строк: 5 число колонок 7 сгенерированный массив   19  14  -6  -8    2  -3  11     2  -8  -9  18    6  -6  -9   -5  -1    2  -6  -6  15  -4   13  19    2    6 -10    5  15   13    1    0  -2  -8  20  18 найденные суммы 44 26 17 47 51

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан одномерный массив с (10) заполненный вручную с клавиатуры, отсортировать по возрастанию и убыванию.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

КутузоваМартенюк
hbqhzwtd
goldenshtein33333
LidiyaBorzikh
nv6634
Moroshkina-Aristova2011
palmhold578
МихайловнаLarisa1150
zolotayaoxana1982
ostapbender1111
Шиловский126
dmitriy
Екатерина_Кирушев
MDubovikov73
Inforealto