0pts求调!

B3968 [GESP202403 五级] 成绩排序

```cpp #include <bits/stdc++.h> using namespace std; int n; struct CJ { int c, m, e, sum, cm, maxcm, num, pm; int x; } cj[114514]; bool cmp(CJ x, CJ y) { if (x.sum != y.sum) { return x.sum > y.sum; } if (x.cm != y.cm) { return x.cm > y.cm; } if (x.maxcm != y.maxcm) { return x.maxcm > y.maxcm; } return false; } bool cmp2(CJ a, CJ b) { return a.num < b.num; } int main() { cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> cj[i].c >> cj[i].m >> cj[i].e; cj[i].sum = cj[i].c + cj[i].m + cj[i].e; cj[i].cm = cj[i].c + cj[i].m; cj[i].maxcm = max(cj[i].c, cj[i].m); cj[i].num = i; } sort(cj + 1, cj + 1 + n, cmp); for (int v = 1; v <= n; v++) { if (cj[v].sum == cj[v - 1].sum && cj[v].cm == cj[v - 1].cm && cj[v].maxcm == cj[v - 1].maxcm) cj[v].x = cj[v - 1].x; else cj[v].x = v; } sort(cj + 1, cj + n + 1, cmp2); for (int i = 1; i <= n; i++) { cout << cj[i].x << "\n"; } return 0; } ```
by yuanzilin @ 2024-06-17 20:49:15


|