Пока Коля скучал между остановками, он разглядывал клумбу с цветами прямоугольной формы, выложенную по периметру квадратной плиткой. Ему стало интересно, какой максимальной толщины можно выложить периметр, если имеется t плиток. Неплохая задачка для программиста, а вы ее сможете решить? Формат ввода
Первая и вторая строки содержат по одному числу n и m(3<=n,m<=2*109) - размеры клумбы. Третья строка содержит количество имеющихся плиток t, 1<=t<=n*m
Формат вывода
Одно число - максимальную ширину периметра, который можно выложить из имеющихся в наличии плиток(что-то может и остаться)
Пример 1
Ввод Вывод
6
7
38
2
Пример 2
Ввод Вывод
5
20
46
1
Язык Python
N = 20;
Var
A:array[1..N] of integer;
i,M:integer;
Begin
Randomize;
Write('Исходный массив:');
M:=1;
For i:= 1 to N do
Begin
A[i]:=random(N+1);
Write(' ',A[i]);
if A[i] > A[M] then M:=i;
End;
WriteLn;
WriteLn('Max = ',A[M],'[',M,']');
if M < N then
For i:= M to N-1 do
A[i]:=A[i+1];
M:=1;
For i:= 1 to N-1 do
if A[i] < A[M] then M:=i;
WriteLn('Min = ',A[M],'[',M,']');
if M < N then
For i:= M to N-1 do
A[i]:=A[i+1];
Write('После удаления Max и Min:');
For i:= 1 to N-2 do
Write(' ',A[i])
End.
Const
N = 3;
M = 4;
Var
A,B,C:array[1..N,1..M] of shortint;
i,j,Max,t:integer;
Begin
Randomize;
WriteLn('Матрица A:');
For i:= 1 to N do
Begin
For j:= 1 to M do
Begin
A[i,j]:=random(19)-9;
Write(A[i,j]:2,' ')
End;
WriteLn
End;
WriteLn('Матрица B:');
For i:= 1 to N do
Begin
For j:= 1 to M do
Begin
B[i,j]:=random(19)-9;
Write(B[i,j]:2,' ');
End;
WriteLn
End;
WriteLn('A+B:');
For i:= 1 to N do
Begin
For j:= 1 to M do
Begin
C[i,j]:=A[i,j]+B[i,j];
Write(C[i,j]:3,' ');
End;
WriteLn
End;
For i:= 1 to N do
Begin
Max:=i;
For j:= i+1 to M do
if C[1,j] > C[1,Max] then Max:=j;
For j:= 1 to N do
Begin
t:=C[j,Max];
C[j,Max]:=C[j,i];
C[j,i]:=t
End;
End;
WriteLn('Матрица C:');
For i:= 1 to N do
Begin
For j:= 1 to M do
Write(C[i,j]:3,' ');
WriteLn
End;
ReadLn
End.
#include <iomanip>
int main()
{
using namespace std;
const int N = 4;
const int M = 4;
int Y[N][M];
//как-нибудь заполняем матрицу
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
Y[i][j] = (i + 1) * (j + 1);
//выведем её на экран
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < M; ++j)
cout << setw(3) << Y[i][j];
cout << endl;
}
//находим сумму элементов побочной диагонали
int S = 0;
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
if (j == M - 1 - i)
S = S + Y[i][j];
cout << "Sum of adverse diagonal of array: " << S << endl;
//находим сумму всех элементов матрицы
int Sum = 0;
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
Sum = Sum + Y[i][j];
cout << "Sum of all elements of array: " << Sum << endl;
return 0;
}