【2020-408统考真题】三元组最小距离--暴力法 C++

#include<iostream>
using namespace std;
void main() {

	int a[] = { -1,0,9 };
	int b[] = { -25,-10,10,11 };
	int c[] = { 2,9,17,30,41 };
	int a_, b_, c_;
	int d =abs(a[0]-b[0])+abs(b[0]-c[0])+abs(c[0]-a[0]);
	for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
		for (int j = 0; j < sizeof(b) / sizeof(b[0]); j++) {
			for (int k = 0; k < sizeof(c) / sizeof(c[0]); k++) {
				d = min(abs(a[i] - b[j]) + abs(b[j] - c[k]) + abs(c[k] - a[i]),d);
			}
		}
	}
	for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
		for (int j = 0; j < sizeof(b) / sizeof(b[0]); j++) {
			for (int k = 0; k < sizeof(c) / sizeof(c[0]); k++) {
				if (abs(a[i] - b[j]) + abs(b[j] - c[k]) + abs(c[k] - a[i]) == d)
				{
					a_ = a[i], b_ = b[j], c_ = c[k];
				}
			}
		}
	}
	cout << d<<' '<<a_<<' '<<b_<<' '<<c_;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值