tyzigfr
28.01.2020 07:16

Всем привет. Застрял на задаче, не могу придумать, как написать код. Кто может Минное поле представляет собой прямоугольное поле размером N × M, разделенное на клетки размером 1 × 1. В некоторых клетках находятся мины (не более одной мины в клетке). Необходимо посчитать количество мин на поле.

Формат входных данных
Первая строка содержит числа n и m (1 ≤ n, m ≤ 103
), обозначая ширину и высоту поляны.
Следующие m строк содержат строки из n символов, которые описывают распределение мин при расчистке. Если я
символ в j-й строке имеет значение «.», это поле (i, j) пустое, и если оно имеет значение «x», то в этом поле
есть мина Поля (1, 1) и (n, m) всегда будут пустыми.

Формат выходных данных
Запишите одно целое число - количество путей, ведущих от поля (1, 1) к полю (n, m), так что на них нет мины, и есть только участки север → юг и восток → запад. Поскольку число путей может быть очень большим напишите остаток от деления этого числа на 10 ^ 9 + 7

Примеры

standard input
5 8
x

.xxx.
..x..

x.x..
...x.


standard output
12

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
rsharapov
03.07.2021 09:43
var i,j,k,m: integer;
    s: string;
begin
  k:=0;
  for i:=1 to 1000000 do
  begin
    s:=IntToStr(i);
    m:=0;
    for j:=1 to (length(s) div 2) do
    if s[j]<>s[length(s)-j+1] then m:=1;
    if m=0 then
    begin
      inc(k); continue;
    end;  
    m:=pos('0',s);
    if m>0 then
    begin
      inc(k); continue;
    end;  
    m:=1;  
    for j:=2 to round(sqrt(i)) do 
    if i mod j = 0 then
    begin
      m:=0;
      break;  
    end;  
    if m=1 then inc(k); 
  end;
  k:=1000000-k;
  writeln('осталось чисел: ',k);
end.

осталось чисел: 544011
0,0(0 оценок)
Ответ:
Robincona
03.07.2021 09:43
var i,j,k,m: integer;
    s: string;
begin
  k:=0;
  for i:=1 to 1000000 do
  begin
    s:=IntToStr(i);
    m:=0;
    for j:=1 to (length(s) div 2) do
    if s[j]<>s[length(s)-j+1] then m:=1;
    if m=0 then
    begin
      inc(k); continue;
    end;  
    m:=pos('0',s);
    if m>0 then
    begin
      inc(k); continue;
    end;  
    m:=1;  
    for j:=2 to round(sqrt(i)) do 
    if i mod j = 0 then
    begin
      m:=0;
      break;  
    end;  
    if m=1 then inc(k); 
  end;
  k:=1000000-k;
  writeln('осталось чисел: ',k);
end.

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