понедельник, 5 декабря 2011 г.

Решение олимпиадных задач

Прямоугольное рисование
В двумерном массиве пометить все клетки, принадлежащие закрашенным строкам, т.е. заполнить массив (1-закрашено, 0-незакрашено). Подсчитать количество клеток, не помеченных как закрашенные, т. е. равных 0.
rogram risovaniye;
var n,m,r,c,i,j,z:integer;
a:array[1..50,1..50] of integer;{тетрадный лист}
b:array[1..50] of integer;{Номера закрашенных строк}
k:array[1..50] of integer;{Номера закрашенных столбцов}
begin
readln(n,m,r,c);


for i:=1 to r do
read(b[i]);


for i:=1 to c do
read(k[i]);

{закраска строчек}
for i:=1 to r do
  for j:=1 to m do
  a[b[i],j]:=1;

{закраска столбцов}
for i:=1 to n do
  for j:=1 to c do
  a[i,k[j]]:=1;

{вывод закрашенного массива}
  for i:=1 to n do begin
  for j:=1 to m do write(a[i,j]:3);writeln;
  end;

{подсчет нулевых (незакрашенных) элементов массива}
  z:=0;
  for i:=1 to n do
  for j:=1 to m do
  if a[i,j]=0 then z:=z+1;
  writeln(z);
{вывод количества незакрашенных элементов массива}
end.

Комментариев нет:

Отправить комментарий