Giả sử, có một tầng được chia thành một lưới có n hàng và m cột. Bây giờ sàn nhà phải được chiếu sáng bằng đèn. Một ngọn đèn nếu đặt ở biên giới của hai ô thì có thể sáng hai ô. Nếu đèn được đặt ở đường viền dọc, đèn chiếu sáng các ô ở bên trái và bên phải của nó và nếu được đặt ở đường viền ngang, nó sẽ sáng lên các ô ở phía trước và phía sau của nó. Với n và m, chúng ta phải tìm ra số lượng bóng đèn tối thiểu cần thiết để thắp sáng toàn bộ tầng.
Vì vậy, nếu đầu vào là n =5, m =3, thì đầu ra sẽ là 8.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
res := (n * m + 1) / 2 return res
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#include <bits/stdc++.h> using namespace std; #define N 100 int solve(int n, int m) { int res = (n * m + 1) / 2; return res; } int main() { int n = 5, m = 3; cout<< solve(n, m); return 0; }
Đầu vào
5, 3
Đầu ra
8