rqnoj吧 关注:56贴子:180
  • 0回复贴,共1

变态题Niop2008(普及组-4)我终于作好了!!!

取消只看楼主收藏回复

program biantaiti; 
var a:array[1..200,1..200]of char; 
 b:array[1..200,1..200]of integer; 
 n,m,x1,x2,y1,y2,x3,z1,z2:integer; 
procedure huatu(i,j:integer); 
 var k1,k2:integer; 
 begin 
 a[i,j]:='+'; 
 a[i,j+4]:='+'; 
 a[i-3,j]:='+'; 
 a[i-3,j+4]:='+'; 
 a[i-2,j+6]:='+'; 
 a[i-5,j+2]:='+'; 
 a[i-5,j+6]:='+'; 
 a[i-4,j+1]:='/'; 
 a[i-4,j+5]:='/'; 
 a[i-1,j+5]:='/'; 
 for k1:=j+3 to j+5 do a[i-5,k1]:='-'; 
 for k1:=j+1 to j+3 do a[i-3,k1]:='-'; 
 for k1:=j+1 to j+3 do a[i,k1]:='-'; 
 for k1:=i-1 downto i-2 do a[k1,j]:='|'; 
 for k1:=i-1 downto i-2 do a[k1,j+4]:='|'; 
 for k1:=i-3 downto i-4 do a[k1,j+6]:='|'; 
 for k1:=i-1 downto i-2 do 
 for k2:=j+1 to j+3 do a[k1,k2]:=' '; 
 for k1:=j+2 to j+4 do a[i-4,k1]:=' '; 
 a[i-3,j+5]:=' '; 
 a[i-2,j+5]:=' '; 
 end; 
begin 
 readln(n,m); 
 for x1:=1 to n do begin 
 for x2:=1 to m do 
 read(b[x1,x2]); 
 readln; 
 end; 
 y1:=0; 
 for x1:=1 to n do 
 for x2:=1 to m do 
 if y1<b[x1,x2]*3+1+(n-x1+1)*2 then 
 y1:=b[x1,x2]*3+1+(n-x1+1)*2; 
 y2:=m*4+n*2+1; 
 z1:=y1; 
 z2:=y2; 
 for x1:=1 to y1 do 
 for x2:=1 to y2 do 
 a[x1,x2]:='.'; 
 y2:=n*2-1; 
 y1:=y1-2*n+2; 
 for x1:=1 to n do begin 
 for x2:=1 to m do begin 
 for x3:=1 to b[x1,x2] do begin 
 huatu(y1,y2); 
 y1:=y1-3; 
 end; 
 y1:=y1+3*b[x1,x2]; 
 y2:=y2+4; 
 end; 
 y1:=y1+2; 
 y2:=1+(n-x1-1)*2; 
 end; 
 for x1:=1 to z1 do begin 
 for x2:=1 to z2 do 
 write(a[x1,x2]); 
 writeln; 
 end; 
 readln; 
end. 


1楼2008-11-18 20:37回复