1. 程式人生 > >【CodeForces - 1A】Theatre Square(水題,幾何)(CODEFORCES,夢的開始)

【CodeForces - 1A】Theatre Square(水題,幾何)(CODEFORCES,夢的開始)

題幹:

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.

Input

The input contains three positive integer numbers in the first line: n,  m and a (1 ≤  n, m, a ≤ 109).

Output

Write the needed number of flagstones.

Examples

Input

6 6 4

Output

4

題目大意:

位於 Berland 首都的戲院廣場,形狀為 n × m 米的矩形。在城市紀念日之時,決定為廣場鋪設正方形的花崗岩石板。每塊石板具有 a

 × a 的尺寸。

最少需要多少石板,才能鋪滿廣場?允許覆蓋比劇院廣場更大的表面,但廣場必須被覆蓋。不允許使用破裂的石板。石板的邊與廣場的邊應保持平行。

輸入的第一行包含了3個正整數:n,  m 和 a (1 ≤  n, m, a ≤ 109)。

解題報告:

    水題不解釋。

    codeforces的第一道題,僅此紀念,夢的開始。

AC程式碼:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
ll a,n,m;
int main()
{
	cin>>n>>m>>a;
	ll ans1 = ceil((n*1.0)/a);
	ll ans2 = ceil((m*1.0)/a);
	cout << ans1*ans2 <<endl;
	return 0 ;
 }