# 概要

このタスクでは、投票（相対評価）の実装を行う。
相対評価とは、既にグレードが確定している問題に対してもユーザーの投票が反映される仕組みである。

# 仕組み

まず、ユーザーが投票したグレードから中央値を取得する。この処理はすでに実装済みである。

そして、中央値グレードと確定しているグレードの差を求める。
差は `gradeOrder(中央値) − gradeOrder(確定グレード)` で計算する（Q11=1, ..., D6=17）。
正値はユーザーが確定グレードより難しいと感じていることを意味し、負値は簡単と感じていることを意味する。

投票数が最小閾値（`MIN_VOTES_FOR_STATISTICS`）未満の場合は中央値が算出されないため、バッジは表示しない。

差に応じて、以下のように5段階評価を行う。

- 差が-2以下: --
- 差が-1: -
- 差が0: 何もなし（バッジ非表示）
- 差が1: +
- 差が2以上: ++

グレードが未定のものに対しては、これまでと同様絶対評価を行う。

# UI

グレードが確定している問題のグレードアイコンの右上に「++」、「+」、「何もなし」、「-」、「--」の5段階評価を表示することで、確定したグレードからの体感難易度の乖離を表す。

投票の際のUIは既存のものから変更しない。

# 作業ブランチ

`feature/relative_evaluation_voting`
