1870 Problem B C語言-連結串列排序
阿新 • • 發佈:2018-11-27
問題 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; }