Official

B - 期末テストの成績順位 / Final Exam Score Ranking Editorial by kyopro_friends


問題文の指示通りにソートすればよいです。比較関数を実装してもよいですが、(得点の-1倍, 出席番号) を考えると標準の昇順ソートを行うことができます。

計算量は \(O(N\log N)\) です。

実装例 (C++)

#include <bits/stdc++.h>
using namespace std;

int main(){
  int n, k;
  cin >> n >> k;
  vector<pair<int, int>> data;
  for(int i=1; i<=n; i++){
    int s;
    cin >> s;
    data.push_back({-s, i});
  }
  sort(data.begin(), data.end());
  cout << data[k-1].second << endl;
}

実装例 (Python)

N, K = map(int, input().split())
S = list(map(int, input().split()))
data = [(-x, i) for i, x in enumerate(S, 1)]
data.sort()
print(data[K-1][1])

posted:
last update: