Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
443445 黄浙峰老师 【C5-9】归并排序 C++ 通过 100 12 MS 252 KB 1272 2026-06-06 10:30:52

Tests(10/10):


#include <iostream> using namespace std; struct Stu { int score, time, id; }; Stu arr[205], tmp[205]; bool cmp(Stu x, Stu y) { if (x.score != y.score) return x.score > y.score; if (x.time != y.time) return x.time < y.time; return x.id < y.id; } void merge(int l, int mid, int r) { int i = l, j = mid + 1, pos = l; while (i <= mid && j <= r) { if (cmp(arr[i], arr[j])) { tmp[pos++] = arr[i++]; } else { tmp[pos++] = arr[j++]; } } while (i <= mid) tmp[pos++] = arr[i++]; while (j <= r) tmp[pos++] = arr[j++]; for (int k = l; k <= r; k++) arr[k] = tmp[k]; } void mergeSort(int l, int r) { if (l >= r) return; int mid = (l + r) / 2; mergeSort(l, mid); mergeSort(mid+1, r); merge(l, mid, r); } int main() { int n,m; cin >>n>>m; int len=n+m; for (int i=0;i<n;i++) { cin>>arr[i].score>>arr[i].time>>arr[i].id; } for (int i=n;i<len;i++) { cin>>arr[i].score>>arr[i].time>>arr[i].id; } mergeSort(0,len -1); for (int i=0; i<len;i++) { cout <<arr[i].score <<" "<<arr[i].time <<" "<<arr[i].id <<endl; } return 0; }


测评信息: