What is the mistake in my code? please check! question is Starters 184 Front or Back

include <bits/stdc++.h>
define ll long long int
using namespace std;

int main() {
// your code goes here
ll t;
cin>>t;
while(t–){
ll a;
cin>>a;
vectorv;
ll mod=998244353;
for(ll i=0;i<a;i++){
ll d;
cin>>d;
v.push_back(d);
}
ll ans=1;

    for(ll i=0;i<a/2;i++){
        if((v[i]==i && v[a-i-1]==a-i-1) || (v[i]==a-i-1 && v[a-i-1]==i)){
            ans=((ans*2)%mod);
        }
        else if(v[i]==v[a-i-1] && (v[i]==i || v[i]==a-i-1)){
            ans=((ans*2)%mod);
        }
        else{
            ans=0;
            break;
        }
    }
    if(a%2==1){
        if(v[a/2]!=a/2){
            ans=0;
        }
    }
    cout<<ans%mod<<endl;
}

}