stl set《集合运算》全WA求助
  • 板块学术版
  • 楼主StarryWander
  • 当前回复13
  • 已保存回复13
  • 发布时间2021/3/24 22:03
  • 上次更新2023/11/5 01:39:30
查看原帖
stl set《集合运算》全WA求助
247220
StarryWander楼主2021/3/24 22:03

题目描述:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[10005],b[10005];
int main(){
	set<int>t1,t2,t3,t4;
	string s1,s2;
	getline(cin,s1);
	getline(cin,s2);
	int sum=0;
	for(int i=0;i<s1.size();i++){
		if(s1[i]!=' ') sum=sum*10+s1[i]-'0';
		else{
			t1.insert(sum);
			sum=0;
		}
	}
	if(s1.size()!=0) t1.insert(sum);
	sum=0;
	for(int i=0;i<s2.size();i++){
		if(s2[i]!=' ') sum=sum*10+s2[i]-'0';
		else{
			t2.insert(sum);
			sum=0;
		}
	}
	if(s2.size()!=0) t2.insert(sum);
	
	//------------------------------------------------------------------
	set<int>::iterator p;
	
    for(p=t1.begin();p!=t1.end();p++) t3.insert(*p);
    for(p=t2.begin();p!=t2.end();p++) t3.insert(*p);
    
    if(t3.empty()) cout<<-1;
    else{
    	for(p=t3.begin();p!=t3.end();p++){
    		cout<<*p<<" ";
		}
	}
	printf("\n");
	
	bool f=0;
	for(p=t1.begin();p!=t1.end();p++){
		int x=*p;
		if(t2.find(x)==t2.end()) {
			cout<<x<<" ";
			f=1;
		}
	}
	if(!f) cout<<-1;
	printf("\n");
	
	
	f=0;
	for(p=t1.begin();p!=t1.end();p++){
		int x=*p;
		if(t2.find(x)!=t2.end()){
			cout<<x<<" ";
			f=1;
		} 
	}
	if(!f) cout<<-1;
	printf("\n");
	
	
	for(p=t1.begin();p!=t1.end();p++){
		int x=*p;
		if(t2.find(x)==t2.end()) t4.insert(x);
	}
	for(p=t2.begin();p!=t2.end();p++){
		int x=*p;
		if(t1.find(x)==t1.end()) t4.insert(x);
	}
	if(t4.empty()){
		cout<<-1;
	}
	else{
		for(p=t4.begin();p!=t4.end();p++){
			cout<<*p<<" ";
		} 
	}
	return 0;
}

2021/3/24 22:03
加载中...