В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
nikusha10
nikusha10
14.08.2022 03:05 •  Информатика

надо написать код (очень желательно на питоне) для задачи: B. Бинго!

«Бинго» — старинная игра с множеством разновидностей. В данной задаче вы познакомитесь с одной из них.

Карточка для игры в «Бинго» представляет собой прямоугольное поле n × m, заполненное числами от 1 до k. Ведущий проводит q раундов, на каждом из которых закрашивается ровно одна ранее не закрашенная клетка. Игрок считается победителем, если на его карточке образуется вертикальная или горизонтальная линия, полностью состоящая из закрашенных клеток.

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

После каждого раунда определите, какую минимальную сумму игрок должен заплатить ведущему, чтобы выиграть в «Бинго» к данному раунду. Если после раунда игрок уже является победителем, то ведущему можно ничего не платить и минимальная сумма равна нулю.

Исходные данные

В первой строке ввода даны целые числа, разделённые пробелом: n, m, q, k (1 ≤ n, m ≤ 105, 1 ≤ n · m ≤ 2 · 105, 1 ≤ q ≤ min(105, n · m), 1 ≤ k ≤ 109) — размер игрового билета, количество раундов и ограничение на величину числа в игровой клетке. Далее следует описание игрового поля: таблица, дано n строк и m столбцов. Числа в каждой строке разделены пробелом. Каждое число натуральное и не превышает k.

Далее следуют q строк описания запросов на закрашивание клеток. В каждой строке даны 2 числа ri и ci (1 ≤ ri ≤ n, 1 ≤ ci ≤ m) — координаты строки и столбца закрашиваемой клетки. Гарантируется, что никакая клетка не закрашивается дважды.

Результат

Для каждого раунда выведите в отдельной строке минимальную сумму, которую игрок должен заплатить ведущему.

пример:

ввод вывод

33 4 5 3

1 3 2 2

3 3 4 1

4 5 2 0

3 1

3 2

2 1

1 1

Показать ответ
Ответ:
1234567da
1234567da
19.09.2022 17:19
Type
  Point=record
    x,y:real
    end;

procedure GetPoint(c:char; var A:Point);
  var
    x,y:real;
begin
  Write('Введите координаты x и y точки ',c,': ');
  Read(x,y);
  A.x:=x; A.y:=y
end;

function DistPoint(A,B:Point):real;
begin
  DistPoint:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;

var
  A,B,M:Point;
  d,p,ab,ma,mb:real;
begin
  GetPoint('A',A); GetPoint('B',B); GetPoint('M',M);
  ab:=DistPoint(A,B); ma:=DistPoint(M,A); mb:=DistPoint(M,B);
  if ma>=ab+mb then d:=mb
  else
    if mb>=ma+ab then d:=ma
    else begin
      p:=(ma+mb+ab)/2;
      d:=2*sqrt(p*(p-ab)*(p-ma)*(p-mb))/ab
    end;
  Writeln('Минимальное расстояние составляет ',d)
end.

Тестовое решение:
Введите координаты x и y точки A: -3 -5
Введите координаты x и y точки B: 2 5
Введите координаты x и y точки M: -3 4
Минимальное расстояние составляет 4.02492235949962
0,0(0 оценок)
Ответ:
никтма
никтма
01.03.2020 00:15
Program Project1;

var m:array [0..14] of integer; i:integer;

function IsPositive(a:integer):boolean;
begin
  result:=(a>-1);
end;

procedure work;
var min, max, count:integer;
begin
  count:=0;
  min:=m[0];
  max:=0;
  for i:=0 to 14 do begin
    if IsPositive(m[i]) then begin
      inc(count);
      if m[i]>max then max:=m[i];
      if m[i]<min then min:=m[i];
    end;
  end;
  writeln('MAX: ', max);
  writeln('MIN: ', min);
  writeln('Count: ', count);
end;

begin
  for i:=0 to 14 do begin
    write('n: ');
    readln(m[i]);
  end;

  work;

  readln;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота