fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int n;
  5. vector<int> a;
  6.  
  7. int solve(int l,int r){
  8. set<int> s;
  9. for(int i=0;i<=n;i++) s.insert(i);
  10.  
  11. while(l>=0&&r<2*n&&a[l]==a[r]){
  12. s.erase(a[l]);
  13. l--;
  14. r++;
  15. }
  16.  
  17. return *s.begin();
  18. }
  19.  
  20. int main(){
  21. ios::sync_with_stdio(false);
  22. cin.tie(nullptr);
  23.  
  24. int t;
  25. cin>>t;
  26.  
  27. while(t--){
  28. cin>>n;
  29. a.assign(2*n,0);
  30.  
  31. for(int i=0;i<2*n;i++) cin>>a[i];
  32.  
  33. int x=-1,y=-1;
  34.  
  35. for(int i=0;i<2*n;i++){
  36. if(a[i]==0){
  37. if(x==-1) x=i;
  38. else y=i;
  39. }
  40. }
  41.  
  42. cout<<max({solve(x,x),solve(y,y),solve((x+y)/2,(x+y+1)/2)})<<"\n";
  43. }
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0.01s 5272KB
stdin
6
4
1 2 0 3 3 0 2 1
2
0 1 0 1
2
1 1 0 0
3
2 0 2 1 1 0
4
0 1 3 0 3 1 2 2
3
0 1 2 1 0 2
stdout
4
2
1
1
2
3