```ts
export function rankOf(score: number, scores: number[]): number {
  let above = 0;
  for (const other of scores) {
    if (other > score) {
      above += 1;
    }
  }
  return above + 1;
}

/** Each score's rank, in the order the scores were given. */
export function rankAll(scores: number[]): number[] {
  const ordered = [...scores].sort((a, b) => b - a);
  const places: Record<number, number> = {};
  let currentRank = 0;

  for (const value of ordered) {
    if (!places[value]) {
      currentRank += 1;
      places[value] = currentRank;
    }
  }

  return scores.map((score) => places[score]);
}
```