You will be given two set A and B. Merge this two set and print the identical elements in increasing order
Input
Each set of input data is divided into three lines, the first line contains two numbers n, m which respectively represent the number of elements of the set A and the set B. The second line contains n elements of set A and the third line contains m elements of set B. Each element is an integer that does not exceed the int range, and each element is separated by a space. Process the input till EOF. There will be maximum 20000 number of elements in a test data.
Output
For each group of data, one row of data is output, indicating that the merged collection requires output from small to large. Each element is separated by a space.
Sample Input
1 2
1
2 3
1 2
1
1 2
Sample Output
1 2 3
1 2
坑点:后面的元素里数字可为复数,用数组标记一做一个错。
一直Runtime Error(ACCESS_VIOLATION)!!!
其实需要输入,然后排序,去重就可以了。
#include<iostream>
using namespace std;int main()
{int n, m;while (scanf_s("%d%d", &n,&m) != EOF){int ans[20010] = { 0 };for (int i = 0, temp; i < n; i++){cin >> temp;ans[temp] = 1;}for (int i = 0, temp; i < m; i++){cin >> temp;ans[temp] = 1;}for (int i = 0; i < 20010; i++){if (ans[i] == 1){cout << i << " ";}}cout << endl;}return 0;
}
本文发布于:2024-02-01 07:08:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170674253134783.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |