数字(东方化改题+老师给的正解)

题目描述

灵梦拥有n个数,这n个数分别是a1,a2,…,an

有一天她做了一个梦,在梦里她的这n个数有部分被魔理沙偷走了,只剩下了m个数b1,b2,…,bm。她想知道有哪些数字被魔理沙偷走了!

灵梦告诉你a和b的值,你需要从小到大的告诉灵梦,哪些数字不见了!

输入格式(number.in)

    第一行一个数n,第二行n个数ai,表示一开始的数字。

    第三行一个数m,第四行m个数bi,表示剩下的数字。

输出格式(number.out)

    一行n-m个数,从小到大输出所有被偷走的数字。

参考题解在这里:

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <iostream>
 5 #include <algorithm>
 6 using namespace std;
 7 int n,m,i,X,a[100005],b[100005];
 8 int cmp(int i,int j) {return i<j;}
 9 int main()
10 {
11     freopen("number.in","r",stdin);
12     freopen("number.out","w",stdout);
13     scanf("%d",&n);
14     for (i=1; i<=n; i++) scanf("%d",&a[i]);
15     scanf("%d",&m);
16     for (i=1; i<=m; i++) scanf("%d",&b[i]);
17     sort(a+1,a+n+1,cmp);
18     sort(b+1,b+m+1,cmp); X=1;
19     for (i=1; i<=n; i++)
20     {
21         if (a[i]==b[X]) X++; else printf("%d ",a[i]);
22     }
23     return 0;
24 
25 }

集训第一天的题目呢……

原文地址:https://www.cnblogs.com/aristocrat/p/8463325.html