遇事不要慌,暴力出奇迹
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 20;
int a[N];
int dfs(int l,int r)
{
bool flag=true;
for(int i=l;i<r;i++)
{
if(a[i]>a[i+1])
flag=false;
}
int mid=(l+r) >> 1;
if(flag)return r-l+1;
else return max(dfs(l,mid),dfs(mid+1,r));//左右两边
}
int main()
{
int n;
cin>>n;
while(n--)
{
int p;
cin>>p;
for(int i=1;i<=p;i++)cin>>a[i];
cout<<dfs(1,p)<<endl;
}
return 0;
}