题目描述:
Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the occasion of the city’s anniversary, a decision was taken to pave the Square with square granite flagstones. Each flagstone is of the size a × a.
What is the least number of flagstones needed to pave the Square? It’s allowed to cover the surface larger than the Theatre Square, but the Square has to be covered. It’s not allowed to break the flagstones. The sides of flagstones should be parallel to the sides of the Square.
输入描述:
The input contains three positive integer numbers in the first line: n, m and a (1 ≤ n, m, a ≤ 109).
输出描述:
Write the needed number of flagstones.
输入:
6 6 4
输出:
4
题意:
一个城市的广场面积有 N×M平方米,过段时间,恰逢这个城市的庆典活动,主办方决定在广场上铺设一种新的地砖,这种地砖每块都是a×a平方米的。
那么问题来了,最少需要多少地砖才能铺满整个广场呢?地砖一定要把广场铺满,允许地砖面积可以超过广场,同时,铺地砖的时候地砖的边必须和广场的边是平行的。
题解:
直接算
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int main(){
int n,m,a;
while(scanf("%d%d%d",&n,&m,&a)!=EOF){
ll ans = 0;
int t1,t2;
if(n % a == 0) t1 = n / a;
else t1 = n / a + 1;
if(m % a == 0) t2 = m / a;
else t2 = m / a + 1;
ans = (ll)t1 * (ll)t2;
printf("%lld\n",ans);
}
return 0;
}