- 建立【正向目标】——1号队伍所在的组至多一支队伍的实力不小于L,实力极差超过D
点击查看代码
#include <bits/stdc++.h>
using namespace std;
struct t1
{
int a,id;
}t[100005];
bool cmp(t1 a,t1 b)
{
return a.a<b.a;
}
int read1()
{
char cc=getchar();
while(!(cc>=48&&cc<=57))
{
if(cc=='-')
{
break;
}
cc=getchar();
}
bool f=false;
int s=0;
if(cc=='-')
{
f=true;
}
else
{
s=cc-48;
}
while(1)
{
cc=getchar();
if(cc>=48&&cc<=57)
{
s=s*10+cc-48;
}
else
{
break;
}
}
if(f==true)
{
s=-s;
}
return s;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int n,l,d;
cin>>n>>l>>d;
for(int i=1;i<=n;i++)
{
t[i].a=read1();
t[i].id=i;
}
sort(t+1,t+n+1,cmp);
int mid=n+1,id;
for(int i=1;i<=n;i++)
{
if(t[i].a>=l&&mid==n+1)
{
mid=i;
}
if(t[i].id==1)
{
id=i;
}
}
if(mid<=3)
{
puts("No");
continue;
}
if(t[id].a>=l)
{
if(t[id].a-t[1].a>d)
{
puts("Yes");
}
else
{
puts("No");
}
}
else
{
if(t[n].a-t[1].a>d)
{
puts("Yes");
}
else
{
puts("No");
}
}
}
return 0;
}