#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define loop(i,a,b) for(int i=a;i<b;i++)
#define for0(i,n) for(int i=0;i<n;i++)
#define for1(i,n) for(int i=1;i<=n;i++)
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define pi 3.14159265358979323846
#define mod 1000000007
#define all(x) x.begin(),x.end()
#define fp(x) fixed << setprecision(x) 
#define fio ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL)
#define gcd __gcd



void online(void){
  #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
  #endif
}



ll smallestprime[1000005];

 void factor(){
  smallestprime[0]=1;smallestprime[1]=1;

  for(int i=2;i<=1000001;i++){
    if(smallestprime[i]==0){
      for(int j=i+i;j<=1000000;j+=i){
        if(smallestprime[j]==0)
        smallestprime[j]=i;
      }
    }
  }
 }

const int INF = -1e9;
vector<ll> a(101);
map<ll,ll> mc;
 void buildtree(int l,int r,int n,int lvl=0){
 	if(r<l || l>=n || r>=n) return;
 	int mx=0,id=-1;
 	for(int i=l;i<=r;i++){
 		if(a[i]>mx){
 			mx=a[i];id=i;
 		}
 	}
 	mc[mx]=lvl;

 	// for left tree
 	buildtree(l,id-1,n,lvl+1);

 	//for right tree
 	buildtree(id+1,r,n,lvl+1);
 }


int main() 
{ 
  fill(smallestprime,smallestprime+1000001,0);
  factor();
  online();
  fio;
   int t;
   cin>>t;
   while(t--){
    int n,k1,k2,w,b;
    cin>>n>>k1>>k2>>w>>b;
    int b1=n-k1;
    int b2=n-k2;
    int flag=0;

    int wtotal=(k1+k2)/2;
    int btotal=(b1+b2)/2;
    if(wtotal>=w && btotal>=b) flag=1;
    if(flag==1) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;


   }

  }