// PascalABC.NET 3.3, сборка 1583 от 25.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var s:=a.Select((v,i)->(v,i)); // последовательность в памяти не хранится var max:=s.Take(3).Max(t->t[0]); var imax:=a.IndexesOf(t->t=max).First; var min:=s.TakeLast(3).Min(t->t[0]); var imin:=a.IndexesOf(t->t=min).Last; Writeln('Максимальный из первых трех - №',imax+1,': ',a[imax]); Writeln('Минимальный из последних трех - №',imin+1,': ',a[imin]); end.
Пример: n= 17 -34 37 26 41 19 24 19 4 -7 -31 5 -23 -40 -40 -31 -28 -12 Максимальный из первых трех - №2: 37 Минимальный из последних трех - №15: -31
begin var (cost, t, k) := (Arr(15, 70, 125, 230, 440), Arr(1, 5, 10, 20, 60), new integer[5]); var n := ReadInteger('n->'); for var i := 4 downto 0 do begin k[i] := n div t[i];n := n mod t[i]; end; if k[0] * cost[0] >= cost[1] then begin k[0] := 0;inc(k[1]); end; if k[0] * cost[0] + k[1] * cost[1] >= cost[2] then begin k[0] := 0;k[1] := 0;inc(k[2]); end; if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] >= cost[3] then begin k[0] := 0;k[1] := 0;k[2] := 0;inc(k[3]); end; if k[0] * cost[0] + k[1] * cost[1] + k[2] * cost[2] + k[3] * cost[3] >= cost[4] then begin k[0] := 0;k[1] := 0;k[2] := 0;k[3] := 0;inc(k[4]); end;
for var i := 0 to 4 do WritelnFormat('{0} билет(ов)- {1} штук(а)', t[i], k[i]); end.