2. C++求两组整数的异或集

  1. 求两组整数的异或集
    【问题描述】

从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集"异或")。

【输入形式】

首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。

【输出形式】

按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。

【样例输入】

5 1 4 32 8 7 9 -6
5 2 87 10 1

【样例输出】

87 32 10 9 8 7 4 2 -6

【样例说明】

第一组整数为5 1 4 32 8 7 9 -6,第二组整数分别为5 2 87 10 1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87 32 10 9 8 7 4 2 -6。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[100];int i=0;
	memset(a,10000,99); 
	while(cin>>a[i++]);
    if(a[i-1]==0)i--;
	sort(a,a+i);
	while(i--){
		if(i>0&&(a[i]==a[i+1]||a[i]==a[i-1]))
	    continue;
		else if(i==0&&a[i]==a[i+1])
		continue;
		cout<<a[i]<<" ";
	}
}
上一篇:BZOJ 4316: 小C的独立集 (仙人掌,树形DP)


下一篇:标准的SQL规范也和SpringDataJpa、MyBatis等ORM框架完美兼容