fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define fast ios_base::sync_with_stdio(false),cout.tie(NULL),cin.tie(NULL);
  4. #define N "\n";
  5. #define all(v) v.begin(),v.end()
  6. #define rall(v) v.rbegin(),v.rend()
  7. #define sz(s) s.size()
  8. typedef long long ll;
  9. #define ull unsigned long long
  10. #define fi first
  11. #define se second
  12. int MOD=1e9+7;
  13. ll mul(ll a,ll b){return (1ll*a*b)%MOD;}
  14. int sub(ll a,ll b){return ((a-b)%MOD+MOD)%MOD;}
  15. int add(ll a,ll b){return ((a%MOD)+(b%MOD))%MOD;}
  16. ll lcm(ll x, ll y) {return x / __gcd(x, y) * y;}
  17. bool iseven(ll n) {if ((n & 1)){return 0;}else {return 1;}}
  18. ll ncr(int n,int m){ll z=1;for(int i=0;i<m;i++){z=z*(n-i)/(i+1);}return z;}
  19. void swp(ll &a,ll &b){a^=b;b^=a;a^=b;}
  20. ll fp(int n,int p){if(!p){return 1;}ll rem=fp(n,p>>1);rem*=rem;if(p&1){rem*=n;}return rem;}
  21. const ll M=3e7+5;
  22. int main() {
  23. fast
  24. int t=1;
  25. cin>>t;
  26. while(t--){
  27. int n;
  28. cin>>n;
  29. vector<int>v;
  30. for(int i=0;i<n;i++){
  31. int num;
  32. cin>>num;
  33. if(v.empty()){
  34. v.push_back(num);
  35. }
  36. else{
  37. if(num!=v.back()){
  38. v.push_back(num);
  39. }
  40. }
  41. }
  42. if(sz(v)==1){cout<<0<<N;}
  43. else{
  44. map<int,int>mp;
  45. for(auto&it:v){
  46. mp[it]++;
  47. }
  48. int mn=1e9;
  49. mp[v[0]]--;
  50. mp[v[sz(v)-1]]--;
  51. for(auto&it:mp){
  52. mn=min(mn,it.second);
  53. }
  54. cout<<mn<<N;
  55. }
  56.  
  57. }
  58. }
  59.  
Success #stdin #stdout 0.01s 5304KB
stdin
5
3
1 1 1
5
1 2 3 4 5
5
1 2 3 2 1
7
1 2 3 1 2 3 1
11
2 2 1 2 3 2 1 2 3 1 2
stdout
0
0
0
1
2