М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
vbvb2006
vbvb2006
29.07.2022 07:19 •  Информатика

Информатика БЖБ косектесндерш ​


Информатика БЖБ косектесндерш ​

👇
Открыть все ответы
Ответ:
димкаа2
димкаа2
29.07.2022
Program esep;
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;
begin assign(input,'f.in');
reset(input);  
assign(output,'f.out');
rewrite(output);
readln(input,a,n);
ans:=10000;
  for i:=1 to n do begin read (input,ar[i]);ts:=ts+2*ar[i];
end;    
if ts<a then writeln(output,'no') 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,'yes') else
 writeln(output, ans); 
  end;
close(output);
close(input);
end.
4,8(76 оценок)
Ответ:
vladysh205
vladysh205
29.07.2022
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);end.
4,6(94 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ