题目描述:你有个2n的方格区域,第一行有k1个白块,第二行有k2个白块,其余全部为黑块。
现在有w个2×1的白的多米诺骨牌和b个黑的骨牌,问能不能将它们全部放在各自对应的颜色块上且彼此不重叠?
设第一行有x1个白,第二行有x2个白,一定能找到一种方法,放下至多(x1+x2)/2块白的骨牌,黑同理。
黑白都判断一下即可。
#include<bits/stdc++.h> #define ll long long using namespace std; inline ll read() { ll a; cin>>a; return a; } int main() { //ios::sync_with_stdio(false); //cin.tie(0);cout.tie(0); int t; t=read(); while(t--) { int n,k1,k2,w,b; n=read();k1=read();k2=read(); w=read();b=read(); int flag=1; if(w*2>k1+k2) flag=0; if(b*2>2*n-k1-k2) flag=0; if(flag) cout<<"YES\n"; else cout<<"NO\n"; } return 0; }