สมมติว่าเรามีตัวเลขห้าตัว n, k1, k2, w และ b มีกระดานที่มีเซลล์ 2 xn และเซลล์ k1 แรกในแถวแรก เซลล์ k2 แรกในแถวที่สองจะมีสีขาว เซลล์อื่นๆ ทั้งหมดเป็นสีดำ เรามีโดมิโนสีขาวและโดมิโนสีดำขดำ (ขนาด 2 x 1) เราสามารถวางโดมิโนสีขาวไว้บนกระดานได้ถ้าเซลล์ของกระดานทั้งสองเป็นสีขาวและไม่มีโดมิโนอื่นครอบครอง ในทำนองเดียวกัน โดมิโนสีดำสามารถวางได้ถ้าเซลล์ทั้งสองเป็นสีดำและไม่ถูกครอบครองโดยโดมิโนอื่น เราต้องตรวจสอบว่าเราสามารถวางแต้ม w + b ทั้งหมดบนกระดานได้หรือไม่ว่าวางทั้งแนวนอนและแนวตั้งหรือไม่
ดังนั้น ถ้าอินพุตเป็น n =5; k1 =4; k2 =3; w =3; b =1 ผลลัพธ์จะเป็น True
ขั้นตอน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
if 2 * w <= (k1 + k2) and 2 * b <= (n - k1 + n - k2), then: return true Otherwise return false
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h>
using namespace std;
bool solve(int n, int k1, int k2, int w, int b) {
if (2 * w <= (k1 + k2) && 2 * b <= (n - k1 + n - k2)) {
return true;
}
else {
return false;
}
}
int main() {
int n = 5;
int k1 = 4;
int k2 = 3;
int w = 3;
int b = 1;
cout << solve(n, k1, k2, w, b) << endl;
} อินพุต
5, 4, 3, 3, 1
ผลลัพธ์
1