Условие Сир Готфрид собирается освободить принцессу Мариотту из лап дракона. В освобождении принцесс, как известно, главное — произвести первое впечатление, поэтому благородный рыцарь хочет приобрести n любовных записок в подарок Мариотте.
Королевские летописцы продают любовные записки по цене 1.05 фунтов за одну записку, но можно сэкономить, купив комплект из 12 записок за 10.25 фунтов или целую коробку из 12 комплектов за 114 фунтов.
Готфриду, определив, сколько коробок, комплектов и любовных записок он должен купить, чтобы заплатить как можно меньше.
Формат входных данных
В одной строке вводится одно целое число N (1 ⩽ N ⩽ 30 000)
Формат выходных данных
Требуется вывести три числа — количество коробок, комплектов и записок, которые надо купить.
Примечания
Сир Годфрид может купить больше любовных записок, чем ему нужно, если это позволит ему сэкономить.
using System;
class Program
{
private static int GetThird(int num)
{
var result = 0;
var kv = num * num;
if (num % 2 == 0)
{
for (var i = num / 2; i > 0; i--)
{
result += kv - i * 2 + 1;
}
for (var i = 0; i < num / 2; i++)
{
result += kv + i * 2 + 1;
}
}
else
{
for (var i = (num - 1) / 2; i > 0; i--)
{
result += kv - i * 2;
}
result += kv;
for (var i = 0; i < (num - 1) / 2; i++)
{
result += kv + i * 2 + 2;
}
}
return result;
}
//оптимизированное свое решение, коротко и ясно
private static int GetThirdOptimized(int num)
{
var result = 0;
var kv = num * num - num + 1;
for (var i = 0; i < num; i++)
{
result += kv + i * 2;
}
return result;
}
private static void Main()
{
Console.WriteLine("Введите натуральноe числo ");
var i = int.Parse(Console.ReadLine());
Console.WriteLine("{0}^3 = {1} = {2} = {3}", i, i * i * i, GetThird(i), GetThirdOptimized(i));
Console.Read();
}
}
begin
var a:=MatrixRandom(7,7,0,9);
var k:=0;
for var i:=0 to 6 do begin
for var j:=0 to 6 do begin
Write(a[i,j]:3);
if a[i,j] in [1..5] then Inc(k)
end;
Writeln
end;
Writeln('Кол-во элементов на [1,5]: ',k)
end.
Тестовое решение:
2 1 7 3 3 2 7
9 2 9 2 0 5 5
4 2 6 9 4 6 0
1 0 3 5 4 5 9
6 3 6 0 2 0 8
0 8 4 3 2 1 8
6 0 4 4 5 4 0
Кол-во элементов на [1,5]: 27
Вариант "совсем для школы"
const
n=7;
var
a:array[1..n,1..n] of integer;
i,j,k:integer;
begin
Randomize;
k:=0;
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(10);
Write(a[i,j]:3);
if a[i,j] in [1..5] then Inc(k)
end;
Writeln
end;
Writeln('Кол-во элементов на [1,5]: ',k)
end.