描述小 X 很关心自己在学校的表现。班主任手上有一本个人得分记录本如果一位同学表现好就会加分表现差则会扣分。学期结束每位同学都得知了自己的个人得分。小 X 想知道其他同学情况如何但由于排名不公布他只好一个个去问班里的其他同学。现在小 X 手上有班里共 NN 位同学的个人得分他想知道每位同学的排名 得分相同则排名相同见样例可并不知道该如何计算希望你帮帮他。输入描述第一行包含一个整数 N 。接下来 N
#include
using namespace std;
int main() { int N; cin >> N;
vector<int> scores(N);
for (int i = 0; i < N; i++) {
cin >> scores[i];
}
vector<int> sortedScores = scores;
sort(sortedScores.begin(), sortedScores.end(), greater<int>());
vector<int> ranks(N);
for (int i = 0; i < N; i++) {
ranks[i] = lower_bound(sortedScores.begin(), sortedScores.end(), scores[i], greater<int>()) - sortedScores.begin() + 1;
}
for (int i = 0; i < N; i++) {
cout << ranks[i] << endl;
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/i2Je 著作权归作者所有。请勿转载和采集!