Как выполнить задание Деление шоколадки ВСОШ информатика 7-8 класс?

Деление шоколадки

Ограничение по времени: 1 секунда

Ограничение по памяти: 256 мегабайт

У Маши есть прямоугольная шоколадка, состоящая из m×n квадратных долек. Маша хочет разделить эту шоколадку между своими друзьями, разломив шоколадку по линиям на k кусочков, то есть каждому другу достанется прямоугольный кусочек шоколадки.

У Юры сегодня день рождения, поэтому Маша хочет разделить шоколадку так, чтобы Юре достался самый большой кусок (содержащий как можно больше долек). Определите число долек в этом куске.

Формат входных данных

Программа получает на вход три натуральных числа, каждое в отдельной строке: m, n и k. Все числа целые положительные, при этом m и n не превосходят 106, а k≤mn.

Обратите внимание на то, что значение mn, а значит, и значение k в этой задаче может превышать возможное значение 32‑битной целочисленной переменной, поэтому необходимо использовать 64‑битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).

Формат выходных данных

Программа должна вывести одно целое число максимально возможное количество долек в том прямоугольном куске, который получит Юра.

Система оценки

Решения, правильно работающие при m≤1000 и n≤1000, будут оцениваться в 60 баллов.

Замечание

В примере из условия нужно разделить шоколадку 4×5 на 4 кусочка. Самый большой кусочек будет состоять из 16 долек, как показано на картинке.

Ввод

4

5

4

Вывод

16

тэги:

информатика

категория:

образование

ответить

комментировать

1 ответ:

старые выше
новые выше
по рейтингу

2

vdtes­t
[42.9K]

2 месяца назад 

Общее количество кучочков в шоколадке равно m×n

Если каждому достанется 1 кусочек то Юре достанется количество кусочков, равное m×n-k (видимо, Юра получит и самый большой кусок, в честь дня рождения и маленький кусочек, как каждый гость)

Запишем программу на языке программирования Pascal:

Переменные m, n и K, придётся объявить как переменные типа int64 (в соответствии с указанием в условии задачи)

Ввод значений осуществляет операторами read, а вывод результата оператором writeln

Код программы:

program chocolate;

var m, n, k : int64;

begin

read(m);

read(n);

read(k);

writeln(m*n-k);

end.

Набираем эту программу в онлайн редакторе для языка Pascal

И запускаем (ссылка на работающий пример)

Ввод и вывод в точности соответствуют условию задачи.

автор вопроса выбрал этот ответ лучшим
Источник: bolshoyvopros.ru