Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เช็คว่าเราวางโดมิโนบนเซลล์สีได้ถูกต้องหรือไม่


สมมติว่าเรามีตัวเลขห้าตัว 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