1. 程式人生 > >1870 Problem B C語言-連結串列排序

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;
}