โจทย์: ทำเครื่องบินกระดาษ 1 ตัวใช้ 1/2 แผ่น (s ตัวต่อแผ่น) k คน ทำคนละ n ตัว ซื้อแพ็คละ p แผ่น หาจำนวนแพ็คน้อยที่สุด
Input: k=5, n=3, s=2, p=3 → Output: 4 (ต้องการ 5×2=10 แผ่น → 4 แพ็ค = 12 แผ่น)
ขั้นตอนแก้
sheets_per_person := ceil(n / s) total_sheets := k * sheets_per_person packs := ceil(total_sheets / p) return packs
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int solve(int k, int n, int s, int p) {
int ans = k * ((n + s - 1) / s);
return (ans + p - 1) / p;
}
int main() {
int k=5, n=3, s=2, p=3;
cout << solve(k,n,s,p) << endl;
}Input
5, 3, 2, 3
Output
4