您的位置:首页 > 其它

【数组的距离】 oj65

2017-07-26 18:07 155 查看


【数组的距离】

发布时间: 2017年5月25日 19:57   最后更新: 2017年6月30日 20:42   时间限制: 1000ms   内存限制: 128M

描述

已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离

输入

第一行为两个整数m, n(1<=m, n<=1000),分别代表数组f[], g[]的长度。 第二行有m个元素,为数组f[]。 第三行有n个元素,为数组g[]。

输出

数组的最短距离

样例输入1 复制
5 5
1 2 3 4 5
6 7 8 9 10


样例输出1
1


#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int m,n, num;
cin >> m>>n;
vector<int> iter_a, iter_b,ans;
for (int i = 0; i < m; i++)
{
scanf("%d", &num);
iter_a.push_back(num);
}
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
iter_b.push_back(num);
}
if (m>n)
{
vector<int>::iterator pIter_b = iter_b.begin();
for (int i = 0; i < n; i++)
{
vector<int>::iterator pIter_a = iter_a.begin();
for (int j = 0; j < m; j++)
{
ans.push_back(abs(pIter_a[j] - pIter_b[i]));
}
}
}
else
{
vector<int>::iterator pIter_a = iter_a.begin();
for (int i = 0; i < m; i++)
{
vector<int>::iterator pIter_b = iter_b.begin();
for (int j = 0; j < n; j++)
{
ans.push_back(abs(pIter_b[j] - pIter_a[i]));
}
}
}
cout << *(min_element(ans.begin(), ans.end()));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM