System Verilog interview question

i gave it a try but it works only for N=3 :)

class fin_array;
  int N = 3;
  rand int arr1[];
  rand int arr2[];
  
  constraint c1 {arr1.size() == 2*N;}
  constraint c2 {arr2.size() == 2*N;}
  
  constraint c3 {
    // repeat each item twice
    foreach(arr1[i])
      if(i%2==1) 
        arr1[i] == arr1[i-1];
      else
        arr1[i] == (i/2)+1;
  }
   
  constraint c4 {
    foreach(arr2[i])
      arr2[i] inside {arr1}; 
    
    // make sure arr2 has only 2 items of each number
    foreach(arr2[i])
      arr2.sum(d1) with (int'(d1==arr2[i])) inside {0,2};  // had to use 0 to deal with repeated items
    
    // set distance between repeating numbers
    foreach(arr2[i])
      if ((i + arr2[i] + 1) < arr2.size()) // to avoid overflow
        arr2[i] == arr2[i + arr2[i] + 1];
  }
endclass

module top;
  fin_array a1;
  initial begin	
    a1= new();
    a1.randomize();
    $display("array1=%p array2=%p", a1.arr1, a1.arr2);
  end
endmodule 

run
array1=‘{1, 1, 2, 2, 3, 3} array2=’{2, 3, 1, 2, 1, 3}