Просмотр содержимого документа
«Задача №644. Площадь прямоугольников. Условие задачи из дистанционного курса подготовки по информатике.»
Задача №644. Площадь прямоугольников
Ссылка на сайт:
http://informatics.mccme.ru/mod/statements/view.php?id=634#1
Данные вводятся с клавиатуры или из файла input.txt, выводятся на экран или в файл output.txt. Первые тесты не всегда совпадают с примерами из условия.
Дано N прямоугольников со сторонами, параллельными осям координат. Требуется определить площадь фигуры, образованной объединением данных прямоугольников.
Входные данные
В первой строке находится число прямоугольников - N. Затем идут N строк, содержащих по 4 числа: x1, y1, x2, y2 - координаты двух противоположных углов прямоугольника. 1 N
Выходные данные
Вывести одно число - площадь фигуры.
Примеры
входные данные
2
1 1 2 2
3 3 4 4
выходные данные
2
Задача решена на 100%.
Uses crt;
Var n,s,i,j,tx,ty,minx,miny,maxa,maxb,tit:longint;
x,y,a,b:array[1..100]of integer;
Begin
readln(n);
minx:=10000;
miny:=10000;
maxa:=-10000;
maxb:=-10000;
For i:=1 to n do begin
read(x[i],y[i],a[i],b[i]);
if a[i]
a[i]:=x[i];
x[i]:=tit;
end;
if b[i]
b[i]:=y[i];
y[i]:=tit;
end;
if x[i]
if a[i]maxa then maxa:=a[i];
if y[i]
if b[i]maxb then maxb:=b[i];
end;
if n=1 then begin s:=abs(x[1]-a[1])*abs(y[1]-b[1]);
writeln(s);
exit;
end;
tx:=minx;
ty:=miny;
For tx:=minx to maxa do
For ty:=miny to maxb do
For i:=1 to n do
if(tx=x[i])and(ty=y[i])then begin inc(s);
break;
end;
writeln(s);
End.