杭电2034 人见人爱A-B
杭电2034 http://acm.hdu.edu.cn/showproblem.php?pid=2034
题目大意:
两个集合(元素没有重复的),前一个集合元素‘-’后一个集合元素,即前一个集合中有的,在后一个集合中有的,减去后即不存在即可。
可以用判断数组间是否相同,相同即将前一个数组元素置0,然后遍历非0输出即可。
注意,行末要求空格。。。要不然交上去会PE
AC代码:
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int n,m,num;
bool f;
int a[10000],b[10000];
int main() {
while(cin>>n>>m) {
if(n==0&&m==0) {
return 0;
} else {
for(int i=0;i<n;i++) {
cin>>a[i];
}
for(int j=0;j<m;j++) {
cin>>b[j];
}
num=0;
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {
if(a[i]==b[j]) {
a[i]=0;
num++;
}
}
}
sort(a,a+n);
f=false;
if(num==n) {
f=true;
}
if(f) {
cout<<"NULL"<<endl;
} else {
for(int i=0;i<n-1;i++) {
if(a[i]!=0) {
cout<<a[i]<<" ";
}
} cout<<a[n-1]<<" "<<endl;
}
}
}
return 0;
}
要求空格。