0
点赞
收藏
分享

微信扫一扫

1870 Problem B C语言-链表排序

刘员外__ 2022-02-04 阅读 48

1870 Problem B C语言-链表排序
题目描述
已有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
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MaxN = 100005;
struct Stu {
	int id;
	int s;
}stu[MaxN];

bool cmp(Stu a, Stu b) {
	return a.id < b.id;
}
int main() {
	int N, M;
	while (cin >> N >> M) {
		int sum = N + M;
		for (int i = 0;i < sum;i++) {
			cin >> stu[i].id >> stu[i].s;
		}
		sort(stu, stu + sum, cmp);

		for (int i = 0;i < sum;i++) {
			cout << stu[i].id << " " << stu[i].s << endl;
		}
	}
	return 0;
}
举报

相关推荐

C++ A + B Problem

x Problem B

A加上B(A+B Problem)

A+B Problem

C语言:链表

C++ 链表 冒泡排序

0 条评论