name: Task Proposal
about: Propose an idea for a task to be used in contests at SOI.
labels:
  - task
  - task/round/any
  - task/difficulty/any
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to propose a task!
        Do not forget to **update the issue title** with your unique task name.

  - type: input
    id: author
    attributes:
      label: Author
      description: Who had the idea for this task?  If applicable, also link to the original source.
      placeholder: stofl and binna, inspired by https://codeforces.com/problemset/problem/1/A
    validations:
      required: true
  
  - type: textarea
    id: task
    attributes:
      label: Task description
      description: "Formal problem statement.  Optional: Add your story idea."
    validations:
      required: true

  - type: textarea
    id: subtasks
    attributes:
      label: Subtasks
      description: Possible subtasks or variations of the task.

  - type: input
    id: spoiler-begin
    attributes:
      label: "---"
      description: "No change is required: Opening the spoiler tag to hide solution and topic ideas, preventing accidental spoiling."
      placeholder: <details><summary>Topic Tags</summary>
      value: <details><summary>Topic Tags</summary>

  - type: dropdown
    id: round
    attributes:
      label: "Topics"
      description: "Relevant topics for this task."
      multiple: true
      options:
        - 2d segment tree
        - 2sat
        - 3d prefix sum
        - adhoc
        - aho-corasic
        - amortization
        - articulation points
        - bellman-ford
        - bfs
        - bignum
        - binary search
        - binary search tree
        - bipartite matching
        - bridges
        - brute force
        - cartesian tree
        - centroid decomposition
        - combinatorics
        - connected components
        - convex hull
        - convex hull trick
        - deque
        - dfs
        - dijkstra
        - divide and conquer
        - dp
        - edit distance
        - fastpow
        - fenwick tree
        - floyd-warshall
        - gcd
        - geometry
        - grahams scan
        - graph
        - greedy
        - hashmap
        - heap
        - implementation
        - interactive
        - interval tree
        - kmp
        - kruskal
        - lca
        - lcd
        - lcs
        - line intersection
        - lis
        - map
        - math
        - matrix
        - maxflow
        - mcm
        - median
        - mer
        - min-cost flow
        - mst
        - multimap
        - multiset
        - next permutation
        - number theory
        - offline processing
        - output only
        - path
        - longest path in dag
        - permutations
        - precomputation
        - prefix sum
        - prim
        - priority queue
        - quad tree
        - queue
        - range minimum query
        - scanline
        - scc
        - search
        - segment tree
        - set
        - shortest path
        - sorting
        - stack
        - string
        - subsets
        - toposort
        - tree
        - trivial
        - union find
        - warmup
    validations:
      required: false

  - type: input
    id: topics-freeform
    attributes:
      label: "Topics (free-form)"
      description: "Additional topics that are not available in the dropdown."
    validations:
      required: false

  - type: markdown
    attributes:
      value: |
        ### Rounds
        In which rounds would this task be applicable?
        Choose the corresponding *round* label(s) for this issue on the right.

  - type: markdown
    attributes:
      value: |
        ### Difficulty
        How would you rate the difficulty of this task?  Relative to the highest round you selected.
        Choose the corresponding *difficulty* label for this issue on the right.

  - type: textarea
    id: solution
    attributes:
      label: Solution
      description: Solution idea or possible approaches.  You don't need to have a full solution to propose a task, but please write down a few thoughts about how you would approach the task.
    validations:
      required: true

  - type: input
    id: spoiler-end
    attributes:
      label: "---"
      description: "No change is required: Closing the spoiler tag"
      placeholder: </details>
      value: </details>