Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để kiểm tra chúng ta có thể đặt các dominos trên các ô màu theo đúng thứ tự hay không

Giả sử chúng ta có năm số n, k1, k2, w và b. Có một bảng có 2 x n ô và k1 ô đầu tiên ở hàng thứ nhất, k2 ô đầu tiên ở hàng thứ hai được tô màu trắng. Tất cả các ô khác là màu đen. Chúng tôi có w dominos trắng và b dominos đen (kích thước 2 x 1). Chúng ta có thể đặt một quân cờ domino màu trắng trên bàn cờ nếu cả hai ô của bàn cờ đều màu trắng và không bị quân cờ domino nào khác chiếm giữ. Theo cách tương tự, một quân cờ domino màu đen có thể được đặt nếu cả hai ô đều màu đen và không bị quân domino nào khác chiếm giữ. Chúng ta phải kiểm tra xem chúng ta có thể đặt tất cả các quân cờ domino w + b trên bàn cờ hay không nếu chúng được đặt theo cả chiều ngang và chiều dọc?

Vì vậy, nếu đầu vào là n =5; k1 =4; k2 =3; w =3; b =1, thì kết quả đầu ra sẽ là True.

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 -

if 2 * w <= (k1 + k2) and 2 * b <= (n - k1 + n - k2), then:
   return true
Otherwise
   return false

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;

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;
}

Đầu vào

5, 4, 3, 3, 1

Đầu ra

1