ееее70
02.11.2021 03:48

Написать программу для решения на любом из яп

на одном из скучнейших уроков максим решил развлечь себя следующим странным он взял прямоугольный лист клетчатой бумаги размером n на m клеток и выбрал какие-то k из них. затем, для каждой выбранной клетки максим полностью закрасил столбец и строку, в которых эта клетка находится. в результате, на листе осталось несколько незакрашенных прямоугольных областей.

теперь максим хочет узнать количество таких областей, но, так как лист большой, ему нужна ваша .

формат файла входных данных:

в первой строке даны три числа n, m, и k – количество строк и столбцов в листе и количество выбранных клеток (1 ≤ n, m ≤ 104, 0 ≤ k ≤ 100). в следующих k строках даны два числа ri и ci – строка и столбец, в которых находится очередная выбранная клетка (1 ≤ ri ≤ n, 1 ≤ ci ≤ m). гарантируется, что каждая выбранная клетка встречается в списке только один раз.

формат файла выходных данных:

выведите одно число – количество незакрашенных прямоугольных областей.

система оценки:

правильные решения для n, m ≤ 10 оцениваются из 30 .

правильные решения для n, m ≤ 1000 оцениваются из 50 .

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ЭлькаЭля
10.09.2021 14:35
Uses graphABC;procedure samolet(x:integer);
begin
setpencolor(clblack);
line(3+x,160,3+x,200);     // зад
line(3+x,160,30+x,180);
line(3+x,200,88+x,205);
line(30+x,180,100+x,175);
line(125+x,176,170+x,200);
line(170+x,200,172+x,202);
line(172+x,202,170+x,204);
line(170+x,204,115+x,205);
line(120+x,195,85+x,255);   //крыло
2line(85+x,255,75+x,258);
line(75+x,258,90+x,195);
line(95+x,175,105+x,125);       // крыло
line(105+x,125,116+x,128);
line(125+x,175,116+x,128);
setpencolor(clblue);          //пилот
floodfill(135+x,190,clred);
line(135+x,182,135+x,192);
line(135+x,192,158+x,194);
end;
var x:integer;
begin
lockdrawing;
for x:=1 to 640 do      //движения 
begin 
clearwindow; 
 samolet(x); 
sleep(10); 
redraw end;end.
0,0(0 оценок)
Ответ:
arhipflina
06.12.2022 15:04
1.
uses crt;
const n=20;
var i,cp1,cn1:integer;
p,cp,cn:real;
z:array[1..n] of integer;
begin
randomize;
for i:=1 to n do
begin
z[i]:=random(20,-20);
if z[i]>=0 then
begin
cp:=cp+z[i];
cp1:=cp1+1;
end
else
begin
cn:=cp+z[i];
cn1:=cn1+1;
end;
cp:=cp/cp1;
cn:=cn/cn1;
end;
if cp>cn then
p:=cp+cn
else
p:=cp*cn;
for i:=1 to n do
write(z[i],' ');
writeln(#13#10,cp:5:2,' ',cn:5:2,' ',p:5:2);
end.
2.
uses crt;
const n=15;m=4;
var i,j,k,flag,count:integer;
a:array[1..n,1..m] of integer;
temp:array[1..100] of integer;
b:array[1..100,1..m] of integer;
begin
randomize;
k:=1;
count:=0;
for i:=1 to n do
begin
flag:=1;
for j:=1 to m do
begin
a[i,j]:=random(51,1);
if (a[i,j]<10) or (a[i,j]>40) then
flag:=0
end;
if flag=1 then
begin
temp[k]:=i;
count:=count+1;
k:=k+1;
end;
end;
for i:=1 to count do
for j:=1 to m do
b[i,j]:=a[temp[i],j];
writeln('Массив A:');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j],' ');
write(#13#10);
end;
if count=0 then
writeln('Нет подходящих строк.')
else
begin
writeln(#13#10,'Массив B:');
for i:=1 to count do
begin
for j:=1 to m do
write(b[i,j],' ');
write(#13#10);
end;
end;
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота