1870 ProblemB C语言-链表排序

xiaoxiao2021-02-28  13

问题 B: C语言-链表排序 时间限制: 1 Sec 内存限制: 128 MB 献花: 25 解决: 23 [献花][花圈][TK题库] 题目描述 已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。 输入 第一行,a、b两个链表元素的数量N、M,用空格隔开。 接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成 输出 按照学号升序排列的数据 样例输入 2 3 5 100 6 89 3 82 4 95 2 10 样例输出 2 10 3 82 4 95 5 100 6 89

#define _CRT_SECURE_NO_WARNINGS #include <unordered_map> #include <algorithm> #include <iostream> #include <cstring> #include <string> #include <vector> #include <stack> #include <queue> #include <map> using namespace std; const int MaxN = 1e6; struct Stu { int id; int s; }stu[MaxN]; bool cmp(Stu a, Stu b) { return a.id < b.id; } int main() { #ifdef _DEBUG freopen("data.txt", "r+", stdin); #endif // _DEBUG int N, M; while (EOF != scanf("%d %d", &N, &M)) { int sum = N + M; for (int i = 0; i < sum; ++i) scanf("%d %d", &stu[i].id, &stu[i].s); sort(stu, stu + sum, cmp); for (int i = 0; i < sum; ++i) printf("%d %d\n", stu[i].id, stu[i].s); } return 0; } /************************************************************** Problem: 1870 User: Sharwen Language: C++ Result: 升仙 Time:0 ms Memory:9520 kb ****************************************************************/
转载请注明原文地址: https://www.6miu.com/read-2450302.html

最新回复(0)