Pascal ABC, В Контесте, не полностью проходит третья задача (превышен лимит времени), помогите сократить) Мой вариант прикреплён.
var k,k1,k2,n,m,p:smallint;
a:array [1..2000,1..2000] of char;
input,output:text;
begin
assign(input,'alligator.in'); reset(input);
assign(output,'alligator.out'); rewrite(output);
read(input,n,m);
for var i:=1 to n do begin
readln(input);
for var y:=1 to m do
read(input,a[i,y]);
end;
while p<1 do begin
for var i:=1 to n do
for var y:=1 to m do begin
if a[i,y]='W' then begin
for var j:=1 to (y-1) do
if a[i,j]='.' then k2:=k2+1;
if k2=(y-1) then begin a[i,y]:='.';
k:=k+1;
end;
k2:=0;
end;
if a[i,y]='N' then begin
for var j:=1 to (i-1) do
if a[j,y]='.' then k2:=k2+1;
if k2=(i-1) then begin
a[i,y]:='.';
k:=k+1;
end;
k2:=0;
end;
if a[i,y]='E' then begin
for var j:=m downto (y+1) do
if a[i,j]='.' then k2:=k2+1;
if k2=(m-y) then begin a[i,y]:='.';
k:=k+1;
end;
k2:=0;
end;
if a[i,y]='S' then begin
for var j:=n downto (i+1) do
if a[j,y]='.' then k2:=k2+1;
if k2=(n-i) then begin
a[i,y]:='.';
k:=k+1;
end;
k2:=0;
end;
end;
if k=0 then p:=1;
k1:=k1+k;
k:=0;
end;
write(output,k1);
close(input);
close(output);
end.
Приложения:
![](https://st.uroker.com/files/f0f/f0f9aae0f1e11a4997d9b3bc3697d3cb.jpg)
![](https://st.uroker.com/files/d84/d842db3fe6a9dc33960c45ab14ddef28.jpg)
![](https://st.uroker.com/files/f43/f43d89c59af079be5b0081662271c987.jpg)
![](https://st.uroker.com/files/234/2346f1d30ad56a61b11a724275726885.jpg)
Ответа на этот вопрос пока нет. Попробуйте найти его через форму поиска.
Вас заинтересует
1 год назад
6 лет назад
8 лет назад
8 лет назад
9 лет назад
9 лет назад