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

โปรแกรม C++ ตรวจสอบการวางโดมิโนบนเซลล์สีได้ครบทุกชิ้น


คำอธิบายปัญหา

สมมติว่าเรามีตัวเลข 5 ตัวคือ n, k1, k2, w และ b มีกระดาน 2 x n เซลล์ เซลล์แรก k1 ตัวในแถวแรก และ k2 ตัวแรกในแถวที่สอง เป็นสีขาว เซลล์อื่นเป็นสีดำ มีโดมิโนสีขาว w ชิ้น และโดมิโนสีดำ b ชิ้น (ขนาด 2x1) สามารถวางโดมิโนขาวได้ก็ต่อเมื่อเซลล์ทั้งสองเป็นสีขาวและว่าง โดมิโนดำวางได้ก็ต่อเมื่อเซลล์ทั้งสองเป็นสีดำและว่าง ต้องการตรวจสอบว่าวางโดมิโนทั้ง w+b ชิ้นได้หมดหรือไม่ (วางได้ทั้งแนวนอนและแนวตั้ง)

ตัวอย่าง: n = 5; k1 = 4; k2 = 3; w = 3; b = 1 ผลลัพธ์คือ True

ขั้นตอนการแก้ปัญหา

ถ้า 2*w <= (k1 + k2) และ 2*b <= (n - k1 + n - k2):
    คืนค่า true
มิฉะนั้น:
    คืนค่า false

ตัวอย่างโค้ด C++

#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