描述

从长度为n的整数序列中删除指定位序的m个元素,按照原顺序输出剩余的元素。其中,1≤m≤n≤1000,原整数序列为a;要删除的元素位序按照严格单调递增的方式存储在序列b中,其中元素b[i]表示要从a中删除的元素的位序,输入数据保证0≤b[i]≤n-1, b[i]<b[i+1]。

例如:n=10,m=5,a={46, 7, 27, 50, 71, 79, 21, 56, 18, 77},b={0, 2, 3, 4, 5},

则删除后得到序列为{7, 21, 56, 18, 77 }


格式

输入格式

三行数据。
第1行两个正整数,分别表示n和m
第2行n个整数,表示待删除元素的序列a
第3行m个正整数,表示要删除元素的位序

输出格式

只有一行,表示a中剩余的元素,不得改变元素之间原来的先后顺序。


样例

输入样例

10 4
2 81 64 88 55 74 6 80 41 93
0 2 4 7

输出样例

81 88 74 6 41 93


限制

时间限制:100 ms
内存限制:8192 KB


代码:

  1. #include<stdio.h>
  2. int a[1000],b[1000],c[1000];
  3. int main()
  4. {
  5. int m,n,i=0,j=0,k=0;
  6. scanf("%d %d",&n,&m);
  7. while(i<n)
  8. {
  9. scanf("%d",&a[i]);
  10. i++;
  11. }
  12. i=0;
  13. while(i<m)
  14. {
  15. scanf("%d",&b[i]);
  16. i++;
  17. }
  18. for(i=0; i<n-m; i++,j++)
  19. {
  20. if(j==b[k])
  21. {
  22. k++;
  23. i--;
  24. }
  25. else
  26. {
  27. c[i]=a[j];
  28. }
  29. }
  30. j=0;
  31. while(j<n-m)
  32. {
  33. printf("%d",c[j]);
  34. if(j!=n-m-1)
  35. printf(" ");
  36. j++;
  37. }
  38. return 0;
  39. }