Здравствуйте!
Уже вторые сутки мучаю задачу 2647.
Для уменьшения аварий на центральной дороге в городе X дорожная служба решила выровнять ямы. Новая яма будет иметь второй по величине объем (в литрах) среди её самой и двух соседних ям. При этом размеры первой и последней ямы решили не менять. Ночью перед ремонтом дороги в городе X прошел проливной дождь, поэтому все ямы до краев заполнены водой. Сколько литров воды выльется обратно на дорогу после проведения ремонта?
Запишите в ответе два числа: количество ям с наименьшим объемом и общий объем воды, вылившейся из ям обратно на дорогу.
на примере входных данных всё получается, при работе с файлом задания с ответом не сходится. Выводит 53 и 13033. В ответе 72 и 17730. Попробовали решить в excel ответ получается тот же 53 и 13033.
Получилось вот такое решение:
var f:text; i,n,g,max,max1,k,l,a,min,minn,r:integer; mas:array[1..10000] of integer;
begin
assign(f, '26-j5.txt');
reset(f);
readln(f,n);
g:=0;
max:=0;
r:=0;
min:=30;
for i:=1 to n do begin
readln(f,mas[ i ]);
end;
for i:=2 to n-1 do begin
max:=0; max1:=0; minn:=30; k:=0; l:=0;
if mas[ i ]>=mas[i-1] then begin
max:=mas[ i ];
k:=i;
end
else begin max:=mas[i-1]; k:=i-1; end;
if mas[i+1]>max then begin max:=mas[i+1]; k:=i+1; end;
if mas[ i ]<=mas[i-1] then begin
minn:=mas[ i ]; l:=i;
end
else begin minn:=mas[i-1]; l:=i-1; end;
if mas[i+1]<minn then begin minn:=mas[i+1]; l:=i+1; end;
max1:=mas[i-1]+mas[ i ]+mas[i+1]-max-minn;
if mas[ i ]>max1 then begin
a:=mas[ i ]-max1;
g:=g+a;
end;
mas[ i ]:=max1;
end;
for i:=1 to n do begin
if mas[ i ]<min then
min:=mas[ i ];
write(mas[ i ],',');
end;
for i:=1 to n do begin
if mas[ i ]=min then
r:=r+1;
end;
writeln;
write(g,',',r);
end.