Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 3 KB
uses crt,strings;
const abc='1';
type tomb = array[1..100] of record
x1, y1, x2, y2 : integer;
end;
vtype = record
val : integer;
old : integer;
pos : byte;
idx : byte;
end;
var t:tomb;
n:byte;
v:array[1..200] of vtype;
asztal: array[1..200,1..200] of record
db : byte;
end;
procedure beolvas;
var f:text;
i:byte;
begin
assign(f, StrCat(StrCat('lapok',abc),'.be'));
reset(f);
readln(f, N);
for i:=1 to n do begin
readln(f, t[i].x1, t[i].y1, t[i].x2, t[i].y2);
end;
close(f);
end;
procedure csere(x, y:byte);
var tmp:vtype;
begin
tmp := v[x];
v[x] := v[y];
v[y] := tmp;
end;
procedure tomorit;
var i:byte;
a,b:byte;
min : integer;
idx : byte;
c:byte;
begin
for i:=1 to N do begin
v[2*i-1].val :=t[i].x1;
v[2*i-1].old :=t[i].x1;
v[2*i-1].pos :=1;
v[2*i-1].idx :=2*i-1;
v[2*i].val := t[i].x2;
v[2*i].old := t[i].x2;
v[2*i].pos := 2;
v[2*i].idx := 2*i;
end;
c:=1;
for a:=1 to 2*n do begin
min := v[a].val;
idx := a;
for b:=a+1 to 2*N do begin
if( min > v[b].val ) then begin min := v[b].val; idx:=b; end;
end;
csere(a, idx);
if( a>1 ) then begin
if( v[a].old > v[a-1].old ) then begin
v[a].val := c+1;
inc(c);
end else
if( v[a].old = v[a-1].old ) then v[a].val:=c;
end else begin
v[a].val := 1;
end;
end;
for a:=1 to 2*n do begin
if( v[a].pos = 1 ) then
t[(v[a].idx+1) div 2].x1 := v[a].val;
if( v[a].pos = 2 ) then
t[(v[a].idx+1) div 2].x2 := v[a].val;
end;
for i:=1 to N do begin
v[2*i-1].val :=t[i].y1;
v[2*i-1].old :=t[i].y1;
v[2*i-1].pos :=1;
v[2*i-1].idx :=2*i-1;
v[2*i].val := t[i].y2;
v[2*i].old := t[i].y2;
v[2*i].pos := 2;
v[2*i].idx := 2*i;
end;
c:=1;
for a:=1 to 2*n do begin
min := v[a].val;
idx := a;
for b:=a+1 to 2*N do begin
if( min > v[b].val ) then begin min := v[b].val; idx:=b; end;
end;
csere(a, idx);
if( a>1 ) then begin
if( v[a].old > v[a-1].old ) then begin
v[a].val := c+1;
inc(c);
end else
if( v[a].old = v[a-1].old ) then v[a].val:=c;
end else begin
v[a].val := 1;
end;
end;
for a:=1 to 2*n do begin
if( v[a].pos = 1 ) then
t[(v[a].idx+1) div 2].y1 := v[a].val;
if( v[a].pos = 2 ) then
t[(v[a].idx+1) div 2].y2 := v[a].val;
end;
end;
procedure megold;
var i,x,y:byte;
max:byte;
fout:text;
begin
max := 0;
for i:=1 to N do begin
for x:=t[i].x1 to t[i].x2 do begin
for y:=t[i].y1 to t[i].y2 do begin
inc(asztal[x][y].db);
if( max < asztal[x][y].db ) then max := asztal[x][y].db;
end;
end;
end;
assign(fout, StrCat(StrCat('lapok_',abc),'.ki'));
rewrite(fout);
writeln(fout, max);
close(fout);
end;
procedure main;
begin
beolvas;
tomorit;
megold;
end;
begin
main;
end.