30分,样例过了

B3968 [GESP202403 五级] 成绩排序

```cpp #include<bits/stdc++.h> using namespace std; int n; const int N = 1e4 + 911; struct st { int c, m, e; int cm, maxcm, cme; int yuan; int x; } a[N]; bool cmp(st x, st y) { if (x.cme != y.cme) return x.cme > y.cme; if (x.cm != y.cm) return x.cm > y.cm; if (x.maxcm != y.maxcm) return x.maxcm > y.maxcm; return false; } bool cmp2(st x, st y) { return x.yuan < y.yuan; } int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i].c >> a[i].m >> a[i].e; a[i].cme = a[i].c + a[i].m + a[i].e; a[i].cm = a[i].c + a[i].m; a[i].maxcm = max(a[i].c, a[i].m); a[i].yuan = i; } sort(a + 1, a + n + 1, cmp); for (int j = 1; j <= n; j++) { if (a[j].cme == a[j - 1].cme && a[j].cm == a[j - 1].cm && a[j].maxcm == a[j - 1].maxcm) a[j].x = a[j - 1].x; else { a[j].x = j; } } sort(a + 1, a + n + 1, cmp2); for (int i = 1; i <= n; ++i) { cout << a[i].x << endl; } return 0; } ``` 一晚上都在纠错,真服了
by Mible2012 @ 2024-06-07 21:17:38


|