This guideline is effective from June 5, 2022. Please refer to the Site Usage Rules.

Anyone who is a Bronze V or higher can submit a comment about the problem's difficulty. The difficulty contributions of Platinum V or higher users will be used to calculate the problem's difficulty, and depending on the number of contributions, users can gain up to 25 rating points.

solved.ac aims for a difficulty system that motivates users to improve their skills by solving problems.

When determining the difficulty level. of each problem, consider the following aspects from the perspective of a general problem-solver:

- The difficulty of the algorithm that appears when solving the problem in
**the easiest way** - The difficulty of
**thinking of the theoretical solution**to the problem, assuming one knows the necessary algorithms - The difficulty of
**implementing that solution in code** - Other factors

Please be especially careful when contributing if you solved the problem by referring to the editorial.

The contributions are sorted by difficulty level value, and then approximately the middle 80% is taken after trimming 10% (rounded) from the top and bottom. It uses a weighted average with a half-life of about one year. The exact weighting formula is as follows:

$\max \left\{
0.5^{ \left[ t\left(\textrm{contrib.}\right) - t\left(\textrm{most recent contrib.}\right) \right] / {365 \textrm{ days}} },
0.9^{ i\left(\textrm{contrib.}\right) - i\left(\textrm{most recent contrib.}\right) }
\right\}$

- $t\left(\textrm{contrib.}\right)$: The time the contribution was left
- $i\left(\textrm{contrib.}\right)$: The order of the contributions when sorted by most recent
- Only contributions that provide difficulty levels are considered.
- Contributions marked as Not ratable are excluded.

Difficulty | Description |
---|---|

Bronze V | Problems that require implementing straightforward instructions Do not include knowledge beyond what is required for the Sprout tier problems Do not require mathematical background knowledge or require only a basic understanding of necessary background knowledge (e. g., suitable for elementary school lower grades) Very easy to understand the text and do not require translating sentences from the problem into formulas |

Bronze IV | Problems that require implementing straightforward instructions Do not include knowledge beyond what is required for the seed tier problems Do not require mathematical background knowledge or require only a basic understanding of necessary background knowledge (e.g., suitable for elementary school lower grades) Very easy to understand the text and translating sentences from the problem into formulas is very easy |

Bronze III | Simple problems that can be solved with a bit of thought Do not require mathematical background knowledge or require only a basic understanding of necessary background knowledge (e.g., suitable for elementary school upper grades) Easy to understand the text and not difficult to translate sentences from the problem into formulas |

Bronze II - I | Problems that can be solved through thought Require only a superficial understanding of necessary mathematical background knowledge (e.g., suitable for middle school students) Easy to understand the text and not difficult to translate sentences from the problem into formulas |

Examples:

- Even if language-specific methods for base conversion are provided, base conversion problems require mathematical background knowledge and are not merely language knowledge required at the Sprout tier, so Bronze III or higher is recommended.
- A problem that requires calculating $\sum_{i=0}^N i$ in $\mathcal{O}\left(1\right)$ involves calculating the sum of an arithmetic series, so Bronze II or higher is recommended.
- Differentiation of a polynomial function requires knowledge of calculus, but since the problem sufficiently explains the relevant background knowledge in the text, it does not necessarily have to be Silver.

If a problem can be solved with an easy solution that the setter did not intend:

- If sufficient robust data has been added to meet the problem's input conditions, which could make the solution wrong, then the difficulty should not be based on that solution.

For subtask, partial score, and full scoring problems:

- The difficulty is based on the level required to receive a green AC. In the case of subtask problems, it is the difficulty of solving the most challenging subtask.

Div. 2 | Div. 1 | Similar Tier Level |
---|---|---|

A | Bronze V — Silver III | |

B | Silver IV — Gold II | |

C~D | A | Gold III — Platinum III |

B | Platinum V — Diamond V | |

C | Platinum II — Diamond II | |

D | Diamond IV — |

For some problems, solved.ac directly sets and fixes the difficulty. Please refer to these problems when contributing to the difficulty of other problems.

Difficulty standard problems can be searched with `votable:false`

.

Problems that are good for learning the syntax of common programming languages are specially set as 'Sprout Difficulty'. These problems are indicated with a sprout icon on a light green background.

Some problems cannot be assigned a difficulty, and solving them yields a rating of 0. These problems are indicated with a '0' icon and are not counted in the number of problems solved.

The criteria for solved.ac to assign a problem as Not ratable are as follows:

- (Extra) Problems with the [Extra] tag on BOJ.
- (Solvability) Problems where it is impossible to reduce the probability of an incorrect first submission below 0.01%* based solely on the problem situation.
- The problem situation includes the description, input data, and interactor, among others, but is not limited to these.
- Although it is impossible to calculate the exact probability, if the problem situation is not clear enough to deduce the precise problem situation through sufficient reasoning, it falls under this criterion. For example, if the given conditions alone are insufficient to solve the problem or if different inputs from those presented in the input format are provided etc.

- (Out of Focus) Problems where the knowledge needed to solve them most easily is significantly different from the knowledge generally required in the field of algorithm problem solving, and it is difficult to infer such knowledge using only the problem situation and common sense.**
- (Understandability) Problems where the description is obscure, or the grammar is severely distorted, making it quite difficult to understand the problem situation.
- (Other) Problems for which it is deemed appropriate to make them Unrated for other reasons.

* The reason for setting 'less than 0.01%' instead of 'exactly 0%' is that there are problems that require randomized solutions. These problems usually have solutions that are less likely to be incorrect than the probability of the judging system failing.

** Exceptions: Among the same source problems, one or more, or problems or links explicitly mentioned in the description that provide relevant foundational knowledge

Criterion | Applicable Examples | Inapplicable Examples |
---|---|---|

Extra | 구구 | |

Solvability | (Probability) 랜덤 게임~, Mystery (Multiple submissions required) 3분 그래프 | 랜덤 게임? |

Out of Focus | (Physics) 총알의 속도 (Non-Euclidean Geometry) 외심과 내심은 사랑입니다 (Others) 스타트링크 사무실을 파헤쳐보자 | (Foundational Knowledge Provided) 탄성 충돌 (Reasonable Inference) 별 찍기 - 11, UCPC에서 가장 쉬운 문제 번호는? (Explicit Mentioning) 데이터 만들기 1, 문제를 푸는 문제 |

Understandability | 요구르트의 유통기한 | 잭 바우어, Africa |

Other | $\textbf{multiple}\text{ edges}$ |

Problems that meet one or more conditions will not yeild ratings even if solved. These problems are indicated with a warning icon next to the difficulty icon.

- If it is possible to easily solve the problem without any knowledge about it by searching for the sequence or recurrence relation of the problem on internet sites, including OEIS, and if the difficulty of implementing the recurrence relation significantly differs from the difficulty of solving the problem from start to finish without looking at the solution.
- If an exactly similar problem already exists.
- Problems that do not differ in the ideas needed to solve the description are considered the same problem.
- Even if they can be solved with the same code, if there are differences in the description, adaptation, or additional information that must be obtained through the programmer's skill, the two problems are considered different.
- If, due to significantly different limitations or other reasons, all solutions for one problem cannot simply be modified to get a correct answer for the other problem (and vice versa), then the two problems are considered different.

Unlike Not ratable, these problems do have a difficulty and can contribute to it.

Only tags used in the easiest solution when solving the problem are attached. However, if the 'easiest' solution is unclear (especially if there are several solutions of similar difficulty), it is permissible to write tags for all solutions.

If you are unsure what difficulty to assign to a problem or if the current difficulty of the problem differs from what you think, please initiate a discussion in the `#🏅solvedac-난이도`

channel of the solved.ac Discord. Active discussions on difficulty are taking place in the `#🏅solvedac-난이도`

channel. You are welcome to start a discussion in English.

Manipulating tier calculations by assigning unreasonably high or low difficulties may result in permanent service restrictions according to the Site Usage Rules.