1005 Median
#include<iostream> #include<cstring> #include<queue> #include<map> #include<set> #include<algorithm> #include<cmath> #include<vector> #define fi first #define se second #define lowbit(x) (x&-x) using namespace std; namespace ae86{ const int bufl=1<<15; char buf[bufl],*s=buf,*t=buf; inline int fetch(){ if(s==t){t=(s=buf)+fread(buf,1,bufl,stdin);if(s==t)return EOF;} return*s++; } inline int read(){ int a=0,b=1,c=fetch(); while(!isdigit(c))b^=c=='-',c=fetch(); while(isdigit(c))a=a*10+c-48,c=fetch(); return b?a:-a; } } using ae86::read; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef pair<int,double> pid; const int inf=0x3f3f3f3f; const ll INF=2e18; const double eps=1e-8; const double pi=acos(-1); const int mod=1e9+7; const double eps = 1e-6; const int N = 2e5 + 10; using namespace std; int mod=1e9+7; bool st[100000+9]; void solve() { int a,b,n,m; memset(st,0,sizeof(st)); cin>>n>>m; for(int i=0;i<m;i++){ cin>>a; st[a]=true; }st[n+1]=true; int ast=0,akt=0,ans=0,ma=-1,sum=0; for(int i=1;i<=n+1;i++){ if(!st[i])ans++; else { if(ma<=ans){ ma=ans; akt=ast; } sum+=ans; ans=0;ast++; } } if(ma-akt<=sum-ma)cout<<"YES\n"; else cout<<"NO\n"; } int main() { ios::sync_with_stdio(0); int tt; cin>>tt; while(tt--) solve(); return 0; }