Codeforces 1A (A. Theatre Square) Simple math problem
A. Theatre Square
time limit per test
2 secondsmemory limit per test
64 megabytesinput
standard inputoutput
standard outputTheatre 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.
Sample test(s)
Input
6 6 4
Output
4
A simple math problem! But I was wrong 2 times at first.
Learned: 1 I learn how to use the function of "ceil". eg: ceil(4.3)=5;
2 If the problem's data need to use the "__int64" type,you'd better insure the relational data use the "__int64" type too,or you may wrong easily!
For this problem,I first submission was wrong because the data 'x' and 'y' are 'int', I should use the "__int64":
View Code
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int m,n,a; 7 int x,y; 8 __int64 sum; 9 while(cin>>m>>n>>a) 10 { 11 if(m%a==0) 12 x=m/a; 13 else 14 x=m/a+1; 15 if(n%a==0) 16 y=n/a; 17 else 18 y=n/a+1; 19 sum=x*y; 20 printf("%I64d\n",sum); 21 22 } 23 return 0; 24 }
here is the AC code:
View Code
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int m,n,a; 7 __int64 x,y; 8 __int64 sum; 9 while(cin>>m>>n>>a) 10 { 11 if(m%a==0) 12 x=m/a; 13 else 14 x=m/a+1; 15 if(n%a==0) 16 y=n/a; 17 else 18 y=n/a+1; 19 sum=x*y; 20 printf("%I64d\n",sum); 21 22 } 23 return 0; 24 }


浙公网安备 33010602011771号