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

data:
  valid_output:
    data:
      "sample1":
        in: |
          3 3 2
          1
          1
          2
          1 2
          3
          1 2 3
        ans: |
          possible
          2
          1 2
        out: |
          possible
          1
          1
  sample:
    data:
      - "":
          in: |
            3 3 2
            1
            1
            2
            1 2
            3
            3 2 1
      - "":
          in: |
            3 2 2
            1
            1
            3
            1 2 3
  secret:
    data:
      - minimal:
          in: |
            1 1 1
            1
            1
      - small:
          generate: random --seed {seed} --n 15 --m 15 --selectN 0 --selectM 0 --c 2 --lim 50
          count: 5
      - small:
          generate: random --seed {seed} --n 15 --m 15 --selectN 0 --selectM 0 --c 3 --lim 50
          count: 5
      - small:
          generate: random --seed {seed} --n 15 --m 15 --selectN 0 --selectM 0 --c 4 --lim 50
          count: 5

      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 2
      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 3
      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 4
      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 5
      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 7
      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 8
      - uniform: random --seed {seed} --n 200000 --m 200000 --selectN 0 --selectM 0 --c 9

      - random: random --seed {seed} --n 200000 --m 200000 --selectN 500 --selectM 500 --c 5
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 500 --selectM 5000 --c 5
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 5000 --selectM 500 --c 5
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 5000 --selectM 5000 --c 5
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 50 --selectM 50 --c 20

      - random: random --seed {seed} --n 200000 --m 200000 --selectN 50 --c 50
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 50 --c 100
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 50 --c 1000
      - random: random --seed {seed} --n 200000 --m 200000 --selectN 50 --c 10000

      - random: random --seed {seed} --n 200000 --m 200000 --selectN 500 --c 500

      - chain: chain --seed {seed} --len 166666 --c 2
      - chain: chain --seed {seed} --len 166666 --c 3

      - one-to-many: complete --n 1 --m 200000 --c 1
      - one-to-many: complete --n 1 --m 200000 --c 200000
      - many-to-one: complete --n 200000 --m 1 --c 1
      - many-to-one: complete --n 200000 --m 1 --c 200000
