Untitled
#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 }
Leave a Comment