Решения получается промежуток 4.8:9.1
Var input,output:text; n,i,j,g,nm,ans,t:integer;ara:array[0..1000] of integer;ar,arq:array[0..1000] of integer; ts,sum,a:integer;beginassign(input,'f.in');reset(input); assign(output,'f.out');rewrite(output);readln(input,a,n);ans:=10000;
for i:=1 to n do beginread(input,ar[i]);ts:=ts+2*ar[i];end;
if ts<a then writeln(output,'-1') else
begin
ara[1]:=3;for i:=2 to 15 do begin ara[i]:=3*ara[i-1];end;
for i:=1 to ara[n] do begin if arq[n]<2 then begin inc(arq[n]);sum:=sum+ar[n];inc(nm); end else begin g:=n;while arq[g]>1 do begin sum:=sum-ar[g]*arq[g];dec(nm,arq[g]);arq[g]:=0;dec(g);end;
inc(arq[g]);sum:=sum+ar[g];inc(nm);end;if sum=a then begin if nm<ans then ans:=nm;end;end;
if ans>1000 then writeln(output,'0') else writeln(output,ans); end;
close(output);close(input);<span>end.</span>
1 Кб = 1024 байт = 8192 бит
8192/4 = 2048 бит
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
type
Собака=class
public
procedure Голос;
begin
Writeln('Гав!')
end;
end;
// пример вызова
begin
var Тузик:=new Собака;
Тузик.Голос
end.
<em>// PascalABC.NET 3.3, сборка 1590 от 03.12.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var imin:=a.IndexMin;
var b:=a[:imin]; b.Println;
var c:=a[imin:]; c.Println
end.
<u>Пример</u>
n= 17
98 34 -59 -23 -65 -46 -15 -88 31 48 13 -7 70 -8 -69 65 -65
98 34 -59 -23 -65 -46 -15
-88 31 48 13 -7 70 -8 -69 65 -65