PROBLEM LINK:
Practice
Contest: Division 1
Contest: Division 2
Contest: Division 3
Contest: Division 4
Author & Editorialist: Nishank Suresh
Testers: Takuki Kurokawa, Utkarsh Gupta
DIFFICULTY:
775
PREREQUISITES:
None
PROBLEM:
Chef has X shelves of books with Y books each. One box can hold Z books, and books from different shelves must go into different boxes.
What’s the minimum number of boxes needed to hold all the books?
EXPLANATION:
Let’s find the number of boxes to hold all the books of a single shelf. We can then multiply this by X to get the final answer.
We want to fit Y books into boxes of size Z. If we had K boxes, we could fit K\cdot Z books.
So, we want the smallest integer K such that K\cdot Z \geq Y.
This tells us that K = \left\lceil \frac{Y}{Z} \right\rceil, where \left\lceil \ \ \right\rceil denotes the ceiling function.
So, the answer is simply
TIME COMPLEXITY
\mathcal{O}(1) per test case.
CODE:
Code (C++)
#include "bits/stdc++.h"
// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using ll = long long int;
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
int t; cin >> t;
while (t--) {
int x, y, z; cin >> x >> y >> z;
cout << x * ((y + z - 1)/z) << '\n';
}
}