38 lines
957 B
C++
38 lines
957 B
C++
#include <bits/stdc++.h>
|
|
using namespace std;
|
|
const int N = 110;
|
|
int n = 4;
|
|
string c[N] = {"", "AA", "BB", "CC", "DD"};//名称
|
|
int a[N] = {0, 1, 2, 3, 4};//序号
|
|
int b[N] = {0, 100, 90, 90, 100};//数值
|
|
|
|
bool cmp(int x,int y){
|
|
if(b[x]==b[y]) return a[x]<a[y];
|
|
return b[x] > b[y];
|
|
}
|
|
|
|
int main() {
|
|
//排序
|
|
sort(a + 1, a + 1+n,cmp); // 1 4 2 3
|
|
for (int i = 1; i <= n; i++) cout << c[a[i]] << " ";
|
|
cout<<endl;
|
|
for (int i = 1; i <= n; i++) cout << a[i] << " ";
|
|
cout<<endl;
|
|
|
|
|
|
int mc = 1; //当前是第几名
|
|
int sl = 0; //当前名次数量
|
|
for (int i = 1;i<=n;i++){
|
|
// 如果与前一位一样,那么当前名次数量+1;否则是1
|
|
if(b[a[i]]==b[a[i-1]]){
|
|
sl++;
|
|
} else {
|
|
mc+=sl;
|
|
sl = 1;
|
|
}
|
|
//输出当前名次
|
|
cout << mc << " ";
|
|
}
|
|
|
|
return 0;
|
|
} |