1870 Problem B C语言-链表排序

问题 B: C语言-链表排序

时间限制: 1 Sec  内存限制: 128 MB
提交: 86  解决: 71
[提交][状态][讨论版][命题人:外部导入]

题目描述

已有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<algorithm>
using namespace std;
struct node {
	int id, score;
}a[100000];

bool cmp(node a, node b) {
	return a.id < b.id;
}

int main() {
	int n, m;
	while (cin >> n >> m) {
		for (int i = 0; i < m + n; i++) {
			cin >> a[i].id >> a[i].score;
		}
		sort(a, a + n + m, cmp);
		for (int i = 0; i < m + n; i++) {
			cout << a[i].id << " " << a[i].score << endl;
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36502291/article/details/84554353