https://codeforces.com/problemset/problem/1349/B
把黑紅oi大爺都給難住了
加了一堆判斷,wa了一年。。。先寫c就win了。。。
1
9 3
5 5 1 1 1 1 3 1 1
從這組樣例可以看出,可以先把5擴展到3左邊,然後3再拓展回去。。。
於是我們只要在有k的前提下,找到有沒有>=k的可以連在一起,就行了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxl=3e5+10;
int n,m,ans,cas,k;
int a[maxl];
char s[maxl];
bool in[maxl];
inline void prework()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
}
inline void mainwork()
{
ans=0;
if(n==1)
{
if(a[1]==k) ans=1;
return;
}
int l=0,r=0,sum1,sum2,mid;
for(int i=1;i<=n;i++)
if(a[i]==k)
{
l=i;break;
}
if(l==0) return;
for(int i=2;i<=n;i++)
if(a[i-1]>=k && a[i]>=k)
ans=1;
for(int i=1;i<=n-2;i++)
if(a[i]>=k && a[i+2]>=k)
ans=1;
}
inline void print()
{
if(ans)
puts("yes");
else
puts("no");
}
int main()
{
int t=1;
scanf("%d",&t);
for(cas=1;cas<=t;cas++)
{
prework();
mainwork();
print();
}
return 0;
}