View Code of Problem 83

#include<bits/stdc++.h>
using namespace std;
void swap(int *a, int *b) {
	int t;
	t=*a;
	*a=*b;
	*b=t;
}
int main() {
	int N,M,a[10000][2],b[10000][2],flag1=0,flag2=0;
	cin>>N>>M;
	for(int i=0; i<N; i++) cin>>a[i][0]>>a[i][1];
	for(int i=0; i<M; i++) cin>>b[i][0]>>b[i][1];
	//先分别对两个组数据进行排序
	for(int i=0; i<N-1; i++) {
		for(int j=1; j<N; j++) {
			if(a[i][0]>a[j][0]) {
				flag1=1;
				swap(a[i][0],a[j][0]);
				swap(a[i][1],a[j][1]);
			}
		}
		if(flag1==0) break;
	} 
	for(int i=0; i<M-1; i++) {
		for(int j=1; j<M; j++) {
			if(b[i][0]>b[j][0]) {
				flag2=1;
				swap(b[i][0],b[j][0]);
				swap(b[i][1],b[j][1]);
			}
		}
		if(flag2==0) break;
	} 
	flag1=0; 
	flag2=0;
	//合并输出 
	while(flag1<N&&flag2<M) {
		if(a[flag1][0]<=b[flag2][0]) {
			cout<<a[flag1][0]<<" "<<a[flag1][1]<<endl;
			flag1++;
		}else {
			cout<<b[flag2][0]<<" "<<b[flag2][1]<<endl;
			flag2++;
		}
	}
	while(flag1<N) {
		cout<<a[flag1][0]<<" "<<a[flag1][1]<<endl;
		flag1++;
	}
	while(flag2<M) {
		cout<<b[flag2][0]<<" "<<b[flag2][1]<<endl;
		flag2++;
	}
}

Double click to view unformatted code.


Back to problem 83