题库练习 「COCI 2014.12」STANOVI
← 上一题 下一题 →

A5829 | 「COCI 2014.12」STANOVI

时间限制1500ms
内存限制64MB
通过 / 提交0/0

题目描述

**译自 [COCI 2014/2015 Contest #4](https://www.hsin.hr/coci/archive/2014_2015/) T6「[STANOVI](https://www.hsin.hr/coci/archive/2014_2015/contest4_tasks.pdf)」**

Stanko 的工作是某 996 建筑公司的苦逼工程师。
最近他接到一个任务:为一栋位于 Zagreb 的建筑物制定平面图。

他必须确定一种用墙来把划分建筑物划分成若干个公寓的方法,使得每个公寓呈矩形。
每块墙必须平行于建筑物的某个侧面。
更准确地,整块地板在平面图上表示为一个 $N \times M$ 的矩形,其中每个公寓都是较小的矩形,大小为 $a \times b$。
其中 $a,b$ 都为整数。

此外,所有公寓都必须完全覆盖建筑物,公寓之间不能相交,但是可以有公共边。
且每个公寓必须碰到建筑物的边缘。

同时,每个公寓有一个期望面积 $K$。$a \times b$ 的公寓与期望的偏差值定义为 $(a \cdot b - K)^2$。
制定的平面图的偏差为所有公寓的偏差之和。

Stanko 想要制定一张偏差值最小的平面图。
请您帮助他写一个程序来确定可能的最小偏差。

![](/uploads/acgo/image/ec36d396e53386de_385ded9894b8.png)

左图为对应第一个样例的一个合法划分;
右图为一个无效的划分,因为有些公寓的尺寸非整数且有一个公寓没有靠着边缘。

输入格式

一行,三个整数 $N,M,K$。

输出格式

一行,可能存在的最小偏差。

输入输出样例

输入 #1
3 3 2
输出 #1
1
输入 #2
2 2 2
输出 #2
0
输入 #3
2 3 4
输出 #3
2
C++ 编辑器
输入
输出