0分求助,悬1关

P1068 [NOIP2009 普及组] 分数线划定

你排序学号是从大到小,应该从小到大才对
by xiaoxiaoyyds @ 2023-10-06 18:39:15


@[123WRz](/user/739859) 学号从小到大
by Pitiless_boy @ 2023-10-06 18:43:09


```cpp #include <bits/stdc++.h> using namespace std; int n, m; struct xinxi{ int id; int fen; }a[5001]; bool cmp(xinxi x, xinxi y) { if (x.fen != y.fen) return x.fen < y.fen; else return x.id > y.id; } int main(){ scanf("%d%d", &n, &m); for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].id, &a[i].fen); for (int i = 1; i <= n; i++) for (int j = i + 1; j <= n; j++) if (cmp(a[i], a[j])) swap(a[i], a[j]); int t = floor(m * 1.5); int sum = a[t].fen; int s = 0; for (int i = 1; i <= n; i++) if (a[i].fen >= sum) s++; printf("%d %d\n", sum, s); for (int i = 1; i <= s; i++) printf("%d %d\n", a[i].id, a[i].fen); } ``` 这是我代码
by Pitiless_boy @ 2023-10-06 18:44:16


```cpp #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int N = 5005; int s[N], id[N], n, m; int main() { cin >> n >> m; m *= 1.5; for (int i = 1; i <= n; i ++) cin >> id[i] >> s[i]; for (int i = n; i > 1; i --) { bool flag = true; for (int j = 1; j < i; j ++) { if (s[j] < s[j + 1] || s[j] == s[j + 1] && id[j] > id[j + 1]) { swap(s[j], s[j + 1]); swap(id[j], id[j + 1]); flag = false; } } if (flag) break; } while (s[m + 1] == s[m]) m ++; cout << s[m] << " " << m << endl; for (int i = 1; i <= m; i ++) cout << id[i] << " " << s[i] << endl; return 0; } ```
by laixiaoyang @ 2023-10-06 18:58:41


已经全部关注
by 123WRz @ 2023-10-06 19:00:07


80分
by 123WRz @ 2023-10-06 20:18:01


|