Саша совсем не любит спиннеры, поэтому он рисует в тетрадке. Он взял тетрадный лист из NxM клеточек и пронумеровал все клетки различными числами. Теперь ему стало интересно, сколько различных треугольников он может вырезать из этого листа по границам клеточек.
Программа получает на вход два числа N и M - размеры исходного листа. Все числа положительные, и не превосходящие 75000.
Программа должна вывести одно число - кол-во прямоугольников.

Ответы

Ответ дал: Gavgavgavgav
0
Посчитаем сколько всего узлов на этом листке:
у нас он N клеточек в высоту, значит всего в каждом столбике N+1 узел;
у нас он М клеточек в ширину, значит всего в каждой строчке М+1 узел.
Значит всего узлов (
N+1)*(М+1).
Чтобы определьть прямоугольник, надо определить два узла в которых будут противоположные углы:
первый узел мы можем выбрать (
N+1)*(М+1) способами;
второй узел мы можем выбрать 
N*М способами (мы не можем выбрать тот столбик и тот ряд, в котором у нас стоит первый узел).
Тоэсть всего способов выбрать (
N+1)*(М+1)*N*М, но это не так.
Рассмотрим весь лист как выбраный прямоугольник.
Пусть мы его выбрали так:
(0; 0),  (
N+1; М+1).
Этот же прямоугольник мы считали, когда плучали с такими координатами:
1) (
N+1; М+1),  (0; 0).
2) (
N+1; 0),  (0; М+1).
3) (0; М+1),  (
N+1; 0).
И так с каждым прямоугольником, тоэсть каждый прямоугольник мы считаем 4 раза, тоэсть конечная формула такова:
(N+1)*(М+1)*N*М / 4.
Осталось составить прогрмму, которая будет это вичислять.
С++:
#include <iostream>using namespace std;int main()
{
int N, M, k;
cin >> N >> M;
k = (N+1)*(M+1)*N*M / 4;
cout << k << endl;
return 0;
}

Pascal:
program Znanija;
var N, M, k:integer;
begin

read(N);
read(M);

k:=((N+1)*(M+1)*N*M) div 4;

writeln();
writeln(k);

end.
Ответ дал: budovnich00
0
На c++ всё верно
Ответ дал: budovnich00
0
создайте консольное приложение, перед return 0; напишите system (“pause”), тогда вы увидите решение, а так оно будет закрываться автоматом
Ответ дал: budovnich00
0
Или в обычном пустом проекте включите библиотеку #include<conio.h> и перед return пропишите _getch();
Ответ дал: budovnich00
0
За Паскаль ни чего сказать не могу, не знаю языка
Ответ дал: mm349
0
А есть на Pythone?
Вас заинтересует