PASCAL NOIP1996普及组复赛第二题。

程序t 1;

var i,j,k,l,m,n,x,y,I 1:longint;

a:数组;

a:= a;

a:= t;

I:= I+1;

j:= j-1;

结束;

直到我& gtj;

如果我& ltr then qsort(i,r);

如果我& ltj然后qsort(l,j);

结束;

开始

readln(n,I,j);

对于x:=1到n do

写('(',I,',',x,')');{同一行上网格的位置}

writeln

对于y:=1到n do

写('(',y,',',j,')');{同一列上网格的位置}

writeln

{网格在从左上到右下的对角线上的位置}

k:= 1;

x:= I;

y:= j;

a:= y;

while(x+1 & lt;=n)和(y+1 & lt;做

开始

x:= x+1;

y:= y+1;

k:= k+1;

a:= y;

结束;

x:= I;

y:= j;

while(x-1 & gt;=1)和(y-1 & gt;=1) do

开始

x:= x-1;

y:= y-1;

k:= k+1;

a:= y;

结束;

qsort(1,k);

对于i1:=1到k do

写('(',a,')');

writeln

{网格在从左下方到右上方的对角线上的位置}

k:= 1;

x:= I;

y:= j;

a:= y;

while(x+1 & lt;=n)和(y-1 & gt;=1) do

开始

x:= x+1;

y:= y-1;

k:= k+1;

a:= y;

结束;

x:= I;

y:= j;

while(x-1 & gt;=1)和(y+1 & lt;做

开始

x:= x-1;

y:= y+1;

k:= k+1;

a:= y;

结束;

qsort(1,k);

对于i1:=k downto 1 do

写('(',a,')');

writeln

结束。

望采纳