C语言:SWUST OJ,繁忙的Bush(0141)

Posted on 2014-12-15 18:46  超级暗客  阅读(246)  评论(0)    收藏  举报

Description:

Bush身居要职,公事繁忙。为此,他不得不将所有要做的事(数量为n)记录下来(当然对于每件事,他们只需要记录下它的特征)同时记录下已做的事(数量为m),以此确定还有哪些事有待去做。现在,假设你就是他的秘书,,你需要确定他还有哪些事没做。

Input:

第一行一个整数N,说明有N个测试样例。对于每个测试样例,首先一行包含两个整数n,m.后面还有n+m行数据。 每行都只有一个整数,表示公事的特征(前n行为所有要做的事的特征,后m行为已做的事的特征)。

对于每个输入的数有:0 < input_number < 10000000

Output:

对于每个测试样例,按从小到大的顺序输出待做公事的特征。

Sample Input:

2
 
4 2
232
12
344
1111
232
12
 
3 1
222
22
2
22
Sample Output:
344
1111
2
222
 1 #include <stdio.h>
 2 int main()
 3 {
 4     int N;
 5     scanf("%d",&N);
 6     while(N--)//多组输入
 7     {
 8         int n,m;
 9         scanf("%d %d",&n,&m);
10         int a[10000],b[10000],c[10000],q;
11         int k=0,i,j,t;
12         for(i=0;i<n+m;i++)
13         {
14             scanf("%d",&a[i]);//输入所有的事和做过的事;
15             if(i>=n)
16                 b[i-n]=a[i];//将后m个输入数据给数组b;数组b:做过的事;
17         }
18         for(i=0;i<n;i++)
19         {
20             for(j=0;j<m;j++)
21             {
22                 if(a[i]==b[j])
23                     a[i]=0;
24             }
25             if(a[i]>0)
26             {
27                 c[k]=a[i];//数组c,没有做过的事
28 k++; 29 } 30 } 31 for(i=0;i<k-1;i++) 32 { 33 t=i; 34 for(j=i+1;j<k;j++) 35 if(c[t]>c[j]) 36 t=j; 37 q=c[t]; 38 c[t]=c[i]; 39 c[i]=q; 40 }//将没有做过的事从小到大用选择法排序; 41 for(i=0;i<k;i++) 42 { 43 printf("%d\n",c[i]);//输出没做的事排序后的顺序; 44 } 45 } 46 return 0; 47 }