В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
vikaivanova12
vikaivanova12
27.09.2020 09:53 •  Информатика

Решить по информатике точнее написать программу!

Показать ответ
Ответ:

Program Olimp4(input);
Uses CRT;
Var x,y:array [1..100] of integer;
a,n,m,i,j,k,max,sum,msum:integer;
Begin
ClrScr;
Assign(input,'input.txt');Reset(input);
randomize;
{Вввод данных из файла}
readln(n);
for i:=1 to n do read(x[i]);
readln;
readln(m);
for j:=1 to m do read(y[j]);
for k:=1 to 10000 do begin
sum:=0; i:=1; j:=1;
{Пока сумма не отрицательна и кучки не закончились}
while (sum>=0) and (i<=n) and (j<=m) do
begin
{Случайное число 0,1}
a:=random(2);
{Если 0, то выбор из первой кучки, если 1, - то из второй}
if (a=0) then begin
{Подсчет суммы}
sum:=sum+x[i];
i:=i+1;
end
else begin
{Подсчет суммы}
sum:=sum+y[j];
j:=j+1;
end;
{Максимальная сумма}

if sum>msum then msum:=sum;
end;
{Закончилась вторая кучка, продолжаем брать из первой}

if i<=n then begin
while i<=n do begin
{Подсчет суммы}
sum:=sum+x[i];

{Если сумма отрицательна, то выход из цикла}
if sum<0 then i:=n+2;

{Максимальная сумма}

if sum>msum then msum:=sum;
inc(i);
end;

0,0(0 оценок)
Ответ:
75643
75643
24.05.2020 13:07

Program Olimp4(input); 
Uses CRT; 
Var x,y:array [1..100] of integer; 
a,n,m,i,j,k,max,sum,msum:integer; 
Begin 
ClrScr; 
Assign(input,'input.txt');Reset(input); 
randomize; 
{Вввод данных из файла} 
readln(n); 
for i:=1 to n do read(x[i]); 
readln; 
readln(m); 
for j:=1 to m do read(y[j]); 
for k:=1 to 10000 do begin 
sum:=0; i:=1; j:=1; 
{Пока сумма не отрицательна и кучки не закончились} 
while (sum>=0) and (i<=n) and (j<=m) do 
begin 
{Случайное число 0,1} 
a:=random(2); 
{Если 0, то выбор из первой кучки, если 1, - то из второй} 
if (a=0) then begin 
{Подсчет суммы} 
sum:=sum+x[i]; 
i:=i+1; 
end 
else begin 
{Подсчет суммы} 
sum:=sum+y[j]; 
j:=j+1; 
end; 
{Максимальная сумма} 

if sum>msum then msum:=sum; 
end; 
{Закончилась вторая кучка, продолжаем брать из первой} 

if i<=n then begin 
while i<=n do begin 
{Подсчет суммы} 
sum:=sum+x[i]; 

{Если сумма отрицательна, то выход из цикла} 
if sum<0 then i:=n+2; 

{Максимальная сумма} 

if sum>msum then msum:=sum; 
inc(i); 
end;

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота