Пусть A — массив, состоящий из N элементов. Обозначим его максимальное и минимальное значение как max и min соответственно. Вычислим сумму элементов S, S=A0+A1+…+AN-1. Заменим каждый элемент массива на разницу S и этого элемента: Ai:=S-Ai,. Такое преобразование массива A назовем операцией Confuse. Напишите программу, которая по массиву B, полученному в результате K–кратного применения операции Confuse к некоторому массиву A, вычислит разность max-min.
Формат входных данных
Первая строка входного файла содержит целые числа N и K, где N — количество элементов массива B (2 ≤ N ≤ 10000), а K — количество применений операции Confuse к начальному массиву A, 1 ≤ K ≤ 100.
Вторая строка файла содержит N элементов массива B. Элементы массива B — целые числа, по модулю не превосходящие 2×109.
Формат выходных данных
Единственная строка выходного файла должна содержать целое число - разность max и min.
входные данные
4 2
45 52 47 46
2002 1
-2638 -11902 -18492 7172 -15757 15640 -742 18059 -16512 9305 -17274 -1772 19283 -11129 15626 7485 -533 -10941 18999 -12963 7347 19167 7364 -13877 -3170 12602 15076 17923 -310 115 -8340 8509 13693 434 -15090 2620 312 -17933 -9557 9952 836 -9948 -13504 15760 -447 -8656 12725 19510 -17191 12657 11703 -14682 -17312 4452 11944 7953 -5979 4868 11124 18105 -6468 -2693 18316 10735 -10172 -4546 13930 207 13013 -10541 6168 5960 12637 7048 -17307 -7515 12782 3302 16295 -12647 12990 -7142 3260 -18974 -16201 18292 13284 -7771 5663 8396 9559 -17388 19937 169 -2120 4460 765 18192 3474 -14806 16556 5185 14314 12440 -10182 17509 9673 3360 -15886 -698 12653 -17937 -13135 -10929 5458 8800 16766 -7570 6142 -15312 4555 14779 -14397 15778 -4076 7638 3551 104 5238 -17581 2208 1599 -11103 5366 -3490 -5502 -12941 7399 19530 -17918 -17550 2658 1870 -6565 5058 9451 -16170 2026 -8587 -12630 -976 -10188 7253 4356 -11768 671 -17731 -12605 2269 6839 5741 -9329 12544 -7819 11752 14877 -11859 -4005 -17213 -8563
выходные данные
7
39947
i, j, n, kolPol, kolOtr, sum, p, ch, k :integer;
a :array of integer;
begin
readln(n);
SetLength(a,n+1);
randomize;
for i:= 1 to n do
a[i]:= random(100)-50;
sum:= 0; p:= 1;
for i:= 1 to n do
begin
if a[i] > 0 then
begin
inc(kolPol);
sum:= sum + a[i];
end;
if a[i] > 0 then
begin
inc(kolOtr);
p:= p * a[i];
end;
end;
writeln('Количество положительных элементов: ',kolPol);
writeln('Сумма положительных элементов: ',sum);
writeln('Количество отрицательных элементов: ',kolOtr);
writeln('Произведение отрицательных элементов: ',p);
i:= 1; p:= 1; ch:= 0;
while (a[i] >= 0) and (i <> n+1) do
begin
p:= p * a[i];
inc(ch);
inc(i);
end;
if ch <> 0 then
writeln('Произведение до первого отрицательного элемента: ',p)
else
writeln('Первый элемент массива отрицательный!');
for i:= 1 to n-1 do
for j:= 1 to n-i do
if a[j] > a[j+1] then
begin
k:= a[j];
a[j]:= a[j+1];
a[j+1]:= k;
end;
writeln('Массив отсортирован по возрастанию:');
for i:= 1 to n do
write(a[i],' ');
end.
case A of
1 : bla
2 : bla-bla
end;
такое выражение выдаст ошибку:
case A of
'sin' : bla
'cos' : bla-bla
end;
т.к в данном случае используется string вместо integer;
если делается калькулятор в одно действие (число - знак - число, пример: 2 + 3), то можно сделать так:
if znak = 'sin' then
result := sin(number)
else
if znak = 'cos' then
result := cos(number)
... (другие условия)
Если же создаётся калькулятор с неограниченным числом параметров (2 + 5 * 4 / 5), то имеет смысл найти парсинга математических выражений
Вроде всё
var
num : integer;
begin
readln(num);
case num of
1 : bla (понедельник)
2 : bla-bla (вторник)
...
6 : bla-bla-bla (суббота)
end;
end.