精灵宝可梦有成百上千种,皮卡丘只是其中之一哦。这么多种宝可梦当然需要用编号来记录下来,皮卡丘的编号就是25号。宝可梦图鉴是一种能记录遇到的宝可梦的神奇工具,可是它还没有完全开发完成。现在请你帮忙写一个程序,完善图鉴的记录功能。
记录功能需要完成这样的要求:如果遇到的宝可梦在图鉴中没有记录,则将该宝可梦的编号加入到图鉴中;如果遇到的宝可梦已经在图鉴中记录,则不处理。
例如:图鉴中只记录了25和26号宝可梦,又遇到了27号宝可梦,那图鉴中将会记录25、 26 、27 号宝可梦;如果在此基础上再次遇到27号宝可梦,则图鉴中还是只有25 、26 、27号宝可梦的记录。
Input
输入数据有多组,到EOF结束。
每组数据,先输入2个整数n,m(1<=n<=807,1<=m<=20),n代表图鉴中已经记录的宝可梦种类数,m代表接下来遇到的宝可梦数量。接下来输入n个整数Ai(1<=Ai<=807),保证Ai是按升序排序的。最后输入m个整数Bi(1<=Bi<=807),代表遇到的宝可梦的编号。
Output
对于每组数据,输出最后图鉴中记录的宝可梦种类数,并将图鉴按照升序打印,编号之间用空格隔开。
Sample Input
7 3
151 251 386 493 649 721 807
151 386 807
2 5
25 26
27 24 22 23 25
5 5
1 4 7 25 133
52 52 52 52 52
Sample Output
7
151 251 386 493 649 721 807
6
22 23 24 25 26 27
6
1 4 7 25 52 133
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{int i,n,m,a[1010],t,j;while(~scanf("%d%d",&n,&m)){for(i=0;i<n;i++)scanf("%d",&a[i]);while(m--){int p=1;scanf("%d",&t);for(i=0;i<n;i++){if(a[i]==t){p=0;break;}}if(p==1)a[n++]=t;}printf("%d\n",n);for(i=0;i<n;i++){for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){int g=a[j];a[j]=a[j+1];a[j+1]=g;}}}for(i=0;i<n;i++)printf("%d%c",a[i],i==n-1?'\n':' ');}return 0;
}