zoukankan      html  css  js  c++  java
  • hdu人见人爱AB(比oj多了一个空格)

    Problem Description
    参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)

    呵呵,很简单吧?
     


     

    Input
    每组输入数据占1行,每行数据的开始是2个整数n(0<n<=100)和m(0<m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.
    如果n=0并且m=0表示输入的结束,不做处理。
     


     

    Output
    针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.
     


     

    Sample Input
    3 3 1 2 3 1 4 7 3 7 2 5 8 2 3 4 5 6 7 8 0 0
     


     

    Sample Output
    2 3 NULL

     

     

     

    #include<stdio.h>
    int main
    ()
    {

        int
     n, m;
        int
     num1[1000], num2[1000], hash[1000], i, j, t;
        while
    ( scanf( "%d%d", &n, &m ) ,n||m )
        {

               for
    ( int k = 0; k < 1000; k++ )
                   hash[k] = 0;
                  
                  
               for
    ( i = 0; i < n; i++ )
                  scanf( "%d", &num1[i] );
                 
                 
               for
    ( j = 0; j < n-1; j++ )
                  for
    ( i = 0; i < (n-1)-j; i++ )
                    if
    ( num1[i] > num1[i+1] )
                      {

                           int
     t;
                           t = num1[i];
                           num1[i] = num1[i+1];
                           num1[i+1] = t;
                      }

                     
                     
               for
    ( j = 0; j < m; j++ )
                  scanf( "%d", &num2[j] );
              
               t = n;
               for
    (  i = 0; i < n; i++ )
               {

                  for
    ( j = 0; j < m; j++ )
                    {

                         if
    ( num1[i] == num2[j] )
                            {

                                     hash[i] = 1;
                                     t--;
                                     break
    ;
                                    
                            }
                    }
               }

               if
    ( t == 0 )
                 printf( "NULL\n" );
               else
     
               {

                    for
    ( i = 0; i < n; i++ )
                    {

                         if
    ( hash[i] == 0 )
                           printf( t == 0?"%d \n":"%d ", num1[i],--t);
                          
                    }
               }
        }
    }

  • 相关阅读:
    docker命令大全
    centos mysql 实战 第二十六节课 mysql in docker
    赋予楼宇“智慧大脑”:厦门双子塔3D可视化
    智慧矿山-选矿工艺数字 3D 可视化
    数字孪生赋能工业发展:可视化“智”造航天新里程
    浅谈可视化设计-数据时代的美味“烹饪师”(下篇)
    工业互联网背景下的高炉炉体三维热力图监控系统
    浅谈可视化设计-数据时代的美味“烹饪师”(上篇)
    加速城市轨道交通发展,数字化运营新基建搭建地铁管理系统
    加油站三维可视化监控系统,安全管理智慧运营
  • 原文地址:https://www.cnblogs.com/zsj576637357/p/2250517.html
Copyright © 2011-2022 走看看