참가 기록의 각 행은 [번호, 정답 수, 벌점]이에요. 정답 수가 많은 참가자를 먼저, 같으면 벌점이 작은 참가자를 먼저, 두 값 모두 같으면 번호가 작은 참가자를 먼저 정렬해요.
순위는 정답 수와 벌점만 비교해요. 두 값이 같으면 공동 순위이고, 순위는 자기보다 좋은 참가자 수+1이에요. 두 명이 공동 1위면 다음 참가자는 3위예요. int solution(vector<vector<int>> records)는 모든 참가자의 '번호 × 순위' 합을 반환해요. 세 빈칸을 채워 주세요.
참가자는 130명, 각 행 길이는 3이에요. 번호는 1N이 한 번씩 등장하며 입력 순서는 임의예요. 정답 수는 0100, 벌점은 01,000이에요. 빈 배열은 없고 반환형은 int예요.
예시 1: records = {{3, 8, 2}, {1, 8, 2}, {2, 8, 4}} → 10. 1·3번은 공동 1위, 2번은 3위라 1+3+6=10이에요.
예시 2: records = {{1, 3, 9}, {2, 4, 7}, {3, 4, 7}, {4, 2, 0}} → 24. 2·3번이 1위, 1번이 3위, 4번이 4위라 2+3+3+16=24예요.
실행 입력은 N과 다음 N줄의 세 값이에요. main은 매개변수를 구성하고 합을 출력하는 하네스예요.
예시 입력
3 3 8 2 1 8 2 2 8 4
예상 결과
10
예시 입력
4 1 3 9 2 4 7 3 4 7 4 2 0
예상 결과
24
핵심 개념
basic-sort-search: 비교 기준과 동률을 정확하게 적용해요.counting-aggregation: 같은 대상이 중복 집계되지 않도록 해요.function-design: 보조 함수의 계약과 결과 조합을 확인해요.