สมมติว่า มีพื้นแบ่งออกเป็นตารางที่มี n แถวและ m คอลัมน์ ตอนนี้พื้นจะต้องสว่างโดยใช้โคมไฟ หลอดไฟ หากวางไว้ที่ขอบของเซลล์สองเซลล์ จะทำให้เซลล์สองเซลล์สว่างขึ้น หากวางหลอดไฟไว้ที่ขอบแนวตั้ง ไฟจะส่องเซลล์ไปทางซ้ายและขวา และหากวางไว้ในแนวนอน ไฟจะส่องสว่างเซลล์ที่ด้านหน้าและด้านหลัง เมื่อให้ n และ m เราต้องหาจำนวนหลอดไฟขั้นต่ำที่จำเป็นในการส่องสว่างทั้งพื้น
ดังนั้น หากอินพุตเป็น n =5, m =3 เอาต์พุตจะเป็น 8
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
res := (n * m + 1) / 2 return res
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#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; }
อินพุต
5, 3
ผลลัพธ์
8