solution: /submissions/accepted/jeroen_turboturbo.cpp
version: 2025-02  # use this version of the generators framework

#test_group.yaml:
  # One or more of:
  # case_sensitive
  # space_change_sensitive
  # float_absolute_tolerance eps
  # float_relative_tolerance eps
  # float_tolerance eps
  #output_validator_args:


data:
  sample:
    data:
      # Some small examples showing to help understanding of the problem.
      - '':
          in: |
            3
            5 1 9 3 7 5
            4 2 4 6 8
            4 7 5 3 2
          ans: 3 5 3 1
      - '':
          in: |
            3
            2 42 1337
            2 42 123456789
            2 1337 123456789
          ans: impossible

  secret:
    data:
      - prime-impossible-dense: prime-construction-main.py 41 0 {seed} 0
      - prime-impossible-dense: prime-construction-main.py 47 0 {seed} 0
      - prime-impossible-dense-transpose: prime-construction-main.py 41 0 {seed} 1
      - prime-impossible-dense-transpose: prime-construction-main.py 47 0 {seed} 1
      - prime-impossible-sparse: prime-construction-main.py 101 0 {seed} 0
      - prime-impossible-sparser: prime-construction-main.py 157 0 {seed} 0
      - prime-possible-dense-atend: prime-construction-main-atend.py 41 1 {seed} 0 0
      - prime-possible-dense-atend: prime-construction-main-atend.py 41 1 {seed} 0 1
      - prime-possible-dense-atend: prime-construction-main-atend.py 41 1 {seed} 0 2


      - prime-dense-possible: 
          generate: prime-construction-main.py 41 1 {seed} 0
          count: 2
      - prime-dense-possible-transpose: prime-construction-main.py 41 1 {seed} 1
      - prime-dense-possible: 
          generate: prime-construction-main.py 47 1 {seed} 0
          count: 2
      - prime-dense-possible-transpose: 
          generate: prime-construction-main.py 47 1 {seed} 1
          count: 2
      - prime-possible-sparse:
          generate: prime-construction-main.py 101 1 {seed} 0
          count: 2
      - prime-possible-sparse-transpose:
          generate: prime-construction-main.py 101 1 {seed} 1
          count: 2
      - prime-possible-sparser: 
          generate: prime-construction-main.py 157 1 {seed} 0
          count: 2
      - prime-possible-sparser-transpose: 
          generate: prime-construction-main.py 157 1 {seed} 1
          count: 2
      - possible-P11: prime-construction-main.py 11 1 {seed} 0
      - impossible-P11: prime-construction-main.py 11 0 {seed} 0
      - possible-P13: prime-construction-main.py 13 1 {seed} 0
      - impossible-P13: prime-construction-main.py 13 0 {seed} 0
      - possible-P17: prime-construction-main.py 17 1 {seed} 1
      - impossible-P17: prime-construction-main.py 17 0 {seed} 1
      - possible-P19: prime-construction-main.py 19 1 {seed} 1
      - impossible-P19: prime-construction-main.py 19 0 {seed} 1
      - possible-P23: prime-construction-main.py 23 1 {seed} 1
      - impossible-P23: prime-construction-main.py 23 0 {seed} 1
      - possible-P29: prime-construction-main.py 29 1 {seed} 1
      - impossible-P29: prime-construction-main.py 29 0 {seed} 1
      - possible-P37: prime-construction-main.py 37 1 {seed} 0
      - impossible-P37: prime-construction-main.py 37 0 {seed} 1
      - possible-P43: prime-construction-main.py 43 1 {seed} 1
      - impossible-P43: prime-construction-main.py 43 0 {seed} 0
      - possible-P61: prime-construction-main.py 61 1 {seed} 1
      - impossible-P61: prime-construction-main.py 61 0 {seed} 1
      - possible-P73: prime-construction-main.py 73 1 {seed} 0
      - impossible-P73: prime-construction-main.py 73 0 {seed} 0
      - possible-P89: prime-construction-main.py 89 1 {seed} 0
      - impossible-P89: prime-construction-main.py 89 0 {seed} 1
      - possible-P103: prime-construction-main.py 103 1 {seed} 0
      - impossible-P103: prime-construction-main.py 103 0 {seed} 0
      - possible-P113: prime-construction-main.py 113 1 {seed} 0
      - impossible-P113: prime-construction-main.py 113 0 {seed} 0
      - possible-P137: prime-construction-main.py 137 1 {seed} 1
      - impossible-P137: prime-construction-main.py 137 0 {seed} 0
      - possible-P151: prime-construction-main.py 151 1 {seed} 1
      - impossible-P151: prime-construction-main.py 151 0 {seed} 1
      - possible-P167: prime-construction-main.py 167 1 {seed} 0
      - impossible-P167: prime-construction-main.py 167 0 {seed} 0
      - possible-P181: prime-construction-main.py 181 1 {seed} 0
      - impossible-P181: prime-construction-main.py 181 0 {seed} 0
      - possible-P197: prime-construction-main.py 197 1 {seed} 0
      - impossible-P197: prime-construction-main.py 197 0 {seed} 0
      - possible-P223: prime-construction-main.py 223 1 {seed} 0
      - impossible-P223: prime-construction-main.py 223 0 {seed} 0
      - min-impossible:
          in: |
            2
            2 1 2
            2 1 3
      - min-impossible:
          in: |
            2
            2 1 2
            2 2 3
      - min-impossible:
          in: |
            2
            2 1 2
            2 3 4
      - min-possible:
          in: |
            2
            2 1 2
            2 1 2

      - two-sets:
          in: |
            2
            4 1 2 3 4
            4 3 4 5 6
      - two-sets:
          in: |
            2
            4 1 2 3 4
            4 4 5 6 7
      - two-sets:
          in: |
            2
            5 1 2 3 4 7
            5 2 5 6 7 8
      - two-sets:
          in: |
            2
            5 2 5 6 7 8
            5 1 2 3 4 7

      - small:
          generate: gen-random.py {seed} 5 5 20
          count: 10
      - small-variablesize:
          generate: gen-random-2.py {seed} 4 4 5
          count: 10
      - worstcase: bigsets2.py {seed} 0
      - worstcase-transpose: bigsets2.py {seed} 1
      - worstcase-possible:
          generate: bigsets.py {seed}
          count: 5
      - smallsets-impossible:
          generate: smallsets.py 0 {seed} 0
          count: 3
      - smallsets-impossible-transpose:
          generate: smallsets.py 0 {seed} 1
          count: 2
      - smallsets-possible:
          generate: smallsets.py 1 {seed} 0
          count: 3
      - smallsets-possible-transpose:
          generate: smallsets.py 1 {seed} 1
          count: 2   
      - smallsets-possible-atend: smallsets-atend.py 1 {seed} 1 0
      - smallsets-possible-atend: smallsets-atend.py 1 {seed} 1 1
      - smallsets-possible-atend: smallsets-atend.py 1 {seed} 1 2

      - two-big-sets-met-in-a-bar: just-twobigs.py {seed}
      - skewed-possible: skewed.py possible
      - skewed-impossible: skewed.py impossible
