Untitled
unknown
plain_text
9 months ago
3.0 kB
6
Indexable
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
using namespace std;
//#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define fastio ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define printclock cerr<<"Time : "<<1000*(ld)clock()/(ld)CLOCKS_PER_SEC<<"ms\n";
//**************************////**************************//
#define pb push_back
#define fill(v,val) memset(v,val,sizeof(v))
#define ll long long
#define ld long double
#define ff first
#define ss second
#define pll pair<ll,ll>
#define pii pair<int,int>
#define sq(v) ((v)*(v))
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define print(v) cout<<v<<"\n"
#define printv(v) for(auto &vv:v){cout<<vv<<" ";}cout<<"\n"
#define input(v) for(auto &vv:v){cin>>vv;}
#define cntsetbits(v) _builtin_popcount(v)
#define ctz(v) __builtin_ctz(v)
//**************************////**************************//
const ll MOD = 1000*1000*1000+7;
const ll INF = 1ll*1000*1000*1000*1000*1000*1000 + 7;
const ld PI = 3.141592653589793;
//**************************////**************************//
ll gcd(ll a,ll b){if(!b)return a;return gcd(b,a%b);}
ll lcm(ll a,ll b){return (a*b)/gcd(a,b);}
ll binexp(ll a,ll b){if(!b)return 1;ll res=binexp(a,b/2);res=(res*res);if(b&1)res=(a*res);return res;}
ll binexpmod(ll x,ll y,ll p){ll res=1;x%=p;while(y>0){if(y&1)res=(res*x)%p;y=y>>1;x=(x*x)%p;}return res;}
vector<bool> soe(ll num) {vector<bool>pno(num,1);pno[0]=pno[1]=false;
for(int i=2;i*i<=num;i++){if(pno[i]){for(int j=i*i;j<=num;j+=i)pno[j]=0;}}return pno;}
ll chash(string s){ll p=31,m=1e9+9;ll hv=0,p_pow=1;
for(char c:s){hv=(hv+(c-'a'+1)*p_pow)%m;p_pow=(p_pow*p)%m;}return hv;}
int smallestDivisor(int n){if(n%2==0)return 2;for(int i=3;i*i<=n;i+=2)if(n%i==0)return i;return n;}
int nopf(int n){int ans=0;while (n!=1){ans++;int sm=smallestDivisor(n);n/=sm;}return ans;}
void solve()
{
int n;
cin>>n;
vector<int> a(n);
input(a);
int mn=n+1, mx=-1, i=0;
while(i<n)
{
int cnt=1;
while(i+1<n && a[i]==a[i+1])
{
i++;
cnt++;
}
if(cnt==1)
{
i++;
continue;
}
mn=min(mn, i-cnt+1);
mx=max(mx, i);
i=i+1;
}
int ans;
if(mx-mn<=1)
ans=0;
else if(mx-mn==2)
ans=1;
else
ans=mx-mn-2;
print(ans);
}
signed main()
{
cout<<fixed<<setprecision(10);
fastio;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t=1;
cin>>t;
for(int i=1;i<=t;i++)
solve();
#ifndef ONLINE_JUDGE
printclock;
#endif
}Editor is loading...
Leave a Comment