思路:给定的x从第一个开始交换 遇到第一个比它自己x大的数就交换 因为如果当前不换的话 后面的每一个进行交换之后都不会形成递增了 又因为数据范围是500 每次交换都可以检查一下是否程递增 如果是 则输出当前换的个数 如果跑完还没有符合 那就输出-1
#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;using ll = long long;using PLL = pair<ll,ll>;
const ll MAX = 1e18;const ll MIN = -1e18;const ll INF=0x3f3f3f3f;
const ll Q = 2e5+9;const ll MOD = 1e9 + 7;
ll a[Q];ll n,x;
bool check(){
for (ll i = 1; i < n; i++)
{
if(a[i+1]<a[i]){
return false;
}
}
return true;
}
void solve(){
cin>>n>>x;
for (ll i = 1; i <= n; i++)
cin>>a[i];
ll now=0;
for (ll i = 1; i <= n; i++)
{
if(check()){
cout<<now<<"\n";
return;
}
if(x<a[i]) swap(a[i],x),now++;
}
cout<<-1<<"\n";
}
int main(){
ios;ll _=1;cin>>_;
while (_--)solve();
return 0;
}