Показать сообщение отдельно
MSnake
On The Floor
Аватар для MSnake
Сообщения: 369
Регистрация: 04.09.2008
Откуда: Москва
Старый пост, нажмите что бы добавить к себе блог 16 июля 2011, 23:18
ВКонтакте
  #1538 (ПС)
-Цитата от sm0ke Посмотреть сообщение
-Цитата от alligator[7Вагон
есть программисты занимающиеся ПХП, инетерсующихся в хип-хопе? есть интересная идея, как создать нечто прибыльное возможно и интересное.
Вещай.

Добавлено через 1 минуту 9 секунд
-Цитата от Hammer Посмотреть сообщение
Есть.
1 1 1 1
1 1 1 1
1 1 1 1
Он вроде сказал, что со всех сторон ограничение - нулями, а там единица проскакивает.
точно именно эта единица и мешает я тут накатал тоже процедурку, но она не работает нифига =(

program pract_summer;
uses crt;
const n=5;
type mass=array[0..n-1,0..n-1] of integer;
var a:mass;
z,i,j:longint;
input,output: text;
procedure search (var i:integer; var j:integer; var z:integer);
var k,p,r,m,sh,pp,rr:integer;
begin
k:=0;
m:=0;
p:=i;
r:=j;
While (a[i,j]=z) do
begin
k:=k+1;
j:=j+1;
end;
j:=r;
While (a[i,j]=z) do
begin
m:=m+1;
i:=i+1;
end;
i:=p;
j:=r;
sh:=k;
if (m <> 1) and (k<>1) then
begin
While (a[i,j]=z) do
begin
if (sh=k) then
begin
sh:=0;
j:=r;
While (a[i,j]=z) do
begin
sh:=sh+1;
j:=j+1;
end;
end;
i:=i+1;
end;
end;
pp:=i;
rr:=j;
i:=p;
j:=r;
if ((pp-1)=m) and ((rr-1)=k) then
begin
While (a[i,j-1] <> z) do
i:=i+1;
If ((i-1) >= (m-1)) then
begin
i:=p;
j:=r;
While (a[i,j+k] <> z) do
i:=i+1;
if ((i-1)>=(m-1)) then
begin
i:=p;
j:=r;
While (a[i-1,j]<>z) do
j:=j+1;
if ((j-1)>=(k-1)) then
begin
i:=p;
j:=r;
While (a[i+m,j]<>z) do
j:=j+1;
if ((j-1)>=(k-1)) then
begin
For i:=p to (p+m) do
For j:=r to (r+k) do a[i,j]:=5
end;
end;
end;
end;
end;
End;
Begin
Assign(input,'C:\PABCWork\a.in');
Reset(input);
Assign(output,'C:\PABCWork\a.out');
Rewrite(output);
Readln(input,z);
For i:=0 to n-1 do
begin
readln(input);
For j:=0 to n-1 do read(input,a[i,j]);
end;
For i:=0 to n-1 do
For j:=0 to n-1 do
begin
If (a[i,j]=z) then
begin
search(i,j,z);
end;
end;
For i:=0 to n-1 do begin
writeln(output);
For j:=0 to n-1 do begin
write(output, a[i,j]);
end;
end;
close(output);
close(input);
end.

Добавлено через 3 часа 31 минуту 34 секунды
-Цитата от Hammer Посмотреть сообщение
-Цитата от sm0ke Посмотреть сообщение
Он вроде сказал, что со всех сторон ограничение - нулями, а там единица проскакивает.
По его входным и выходным данным - это не так.
Там я опечатался немного

Ниже привел здоровый пример

Добавлено через 18 часов 29 минут 28 секунд
вот накатал программку, уверен на сто процентов что все правильно,
15 раз перепроверил, но сука выдает какую то фигню =(
Может кто найдет ошибку
Вот файл с прогой....
http://rghost.ru/14851631

offline
Ответить с цитированием