一:题目来源:https://vjudge.net/contest/207402#problem/R
二:wa点:没啥好说的,主要注意格式
for(j=0;j<n+num;j++)
{
if(j!=n+num-1)
cout<<an[j]<<" ";
else
cout<<an[j];
}
开始这里我写的是j!=n+num;发现j走到n+num时候不会再循环,减了个1就ac了(顺便感谢一波提示我的大佬)
三:思路:
将两行的元素分别存到an,bn两个数组中,看bn中有没有an中没有包含的元素,有就把这个元素加到an中,最后从小到大排序,输出,nice(据说内存会爆但我居然ac了23333。其实是我还不会map……溜走,到时再用map写一次/笑哭)
四:题解:
#include<iostream> #include<algorithm> #define N 10000 using namespace std; int main() { int n,m,i,j; while(cin>>n>>m) { if(n==0&&m==0) break; int bn[N]={0},an[N]={0},num; for(i=0;i<n;i++) cin>>an[i]; for(i=0;i<m;i++) cin>>bn[i]; num=0;//没有不重复的 for(i=0;i<m;i++)//看bn数组中有没有an中没有的元素 { for(j=0;j<n;j++) { if(bn[i]==an[j])//有相同的 break; } if(j==n)//没有相同的 { an[n+num]=bn[i]; num++; } } sort(an,an+n+num); for(j=0;j<n+num;j++) { if(j!=n+num-1) cout<<an[j]<<" "; else cout<<an[j]; } cout<<endl; } return 0; }