#include <bits/stdc++.h>
using namespace std;
struct node {
int a, b;
node *next;
};
void Print(node *p) {
p = p->next; // í·??????′?êy?Y
while(p != NULL) {
cout << p->a << " " << p->b << endl;
p = p->next;
}
}
int main() {
int n, m;
node *h1, *h2, *h3, *p, *q, *l;
cin >> n;
h1 = new node;
p = h1;
for(int i=1; i<=n; i++) {
q = new node;
cin >> q->a >> q->b;
p->next = q;
p = q;
}
p->next = NULL;
cin >> m;
h2 = new node;
p = h2;
for(int i=1; i<=m; i++) {
q = new node;
cin >> q->a >> q->b;
p->next = q;
p = q;
}
p->next = NULL;
h3 = new node;
p = h3;
node *p1, *p2;
p1 = h1->next, p2 = h2->next; // í·??????′?êy?Y
while(p1 != NULL && p2 != NULL) {
q = new node;
if(p1->b > p2->b) {
q->a = p1->a;
q->b = p1->b;
p1 = p1->next;
} else {
if(p1->b < p2->b) {
q->a = p2->a;
q->b = p2->b;
p2 = p2->next;
} else {
if(p1->b == p2->b) {
q->a = p1->a + p2->a;
q->b = p1->b;
p1 = p1->next;
p2 = p2->next;
}
}
}
p->next = q;
p = q;
}
if(p1 != NULL) // á??óé?è¥
p->next = p1;
else if(p2 != NULL) // á??óé?è¥
p->next = p2;
int ans = 0;
p = h3;
while(p != NULL) {
ans ++;
p = p->next;
}
cout << ans-1 << endl; // í·??????′?êy?Y
Print(h3);
return 0;
}
by Skywind @ 2019-08-06 13:37:06