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

0 голосов
39 просмотров

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


Информатика (12 баллов) | 39 просмотров
Дано ответов: 2
0 голосов

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 <br>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 <br>while i<=n do begin <br>{Подсчет суммы}
sum:=sum+x[i];

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

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

(18 баллов)
0 голосов

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 </span>
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 </span>
while i<=n do begin </span>
{Подсчет суммы} 
sum:=sum+x[i]; 

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

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

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

(349 баллов)