7 条题解
-
-2
C++
#include <bits/stdc++.h> using namespace std; struct Node{ //s是名字,w是分数,n是排名 string s; int w; int n; } a[1001]; bool cmp(Node a, Node b) { if(a.w != b.w) return a.w > b.w; //如果分数不同,按分数排名序 else return a.s < b.s; //否则按名字排序 } int main() { int n, m; cin >> n >> m; for(int i = 0; i < n; i++) { cin >> a[i].s >> a[i].w; //输入名字和分数 } sort(a, a + n, cmp); //排序 for(int i = 0; i < n; i++) { //处理同分时的排名 if(i == 0) a[i].n = i + 1; else if(a[i].w == a[i - 1].w) a[i].n = a[i - 1].n; else a[i].n = i + 1; cout << a[i].n << ":" << a[i].s << endl; //输出 } int ans = 0; for(int i = 0; i < n; i++) { if(a[i].n <= m) ans+=1; //统计可以拿奶茶的人数 } cout << ans; return 0; }
信息
- ID
- 736
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 603
- 已通过
- 177
- 上传者