皮卡丘的编号是? 将两个 一维数组的数 保存到另一个 一维数组当中,且不准有重复的数字

皮卡丘的编号是?

Time Limit: 1000MS Memory Limit: 65536KB

Problem Description

 

精灵宝可梦有成百上千种,皮卡丘只是其中之一哦。这么多种宝可梦当然需要用编号来记录下来,皮卡丘的编号就是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

对于每组数据,输出最后图鉴中记录的宝可梦种类数,并将图鉴按照升序打印,编号之间用空格隔开。

Example 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
Example 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>
int main(void)
{
    int a[808], b[20], c[1000], i, j, k, t, w, n, m;


    while(~scanf("%d %d", &n, &m))
    {
        k = 0;
        w = 0;
        for(i = 0; i < n; i++)
        {
            scanf("%d", &a[i]);
            c[k++] = a[i];
        }
        for(i = 0; i < m; i++)
        {
            scanf("%d", &b[i]);
            for(j = 0; j < n; j++)
            {
                if(b[i] == a[j])
                {
                    break;
                }
                if(b[i] == b[i - 1])
                {
                    break;
                }
                if(j == n - 1)
                {
                    c[k++] = b[i];
                    w++;
                } 
            }
        }
        w += n;
        for(i = 0; i < w; i++)
        {
            for(j = 0; j < w - i - 1; j++)
            {
                if(c[j] > c[j + 1])
                {
                    t = c[j], c[j] = c[j + 1], c[j + 1] = t;
                }
            }
        }
        printf("%d\n", w);
        for(i = 0; i < w; i++)
        {
            printf("%d%c", c[i], i == w - 1?'\n':' ');
        }
    }
    return 0;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值