/*
描述小hi的學校正面臨著廢校的大危機。面對學校的危機,小hi同學們決定從abc三個班中各挑出一名同學成為偶像。
成為偶像團體的條件之一,就是3名團員之間的身高差越小越好。
已知abc三個班同學的身高分別是a1..an, b1..bm 和 c1..cl。請你從中選出3名同學ai, bj, ck使得d=|ai-bj|+|bj-ck|+|ck-ai|最小。
輸入第一行包含3個整數,n, m和l。
第二行包含n個整數,a1, a2, ... an。(1 <= ai <= 100000000)
第三行包含m個整數,b1, b2, ... bm。(1 <= bi <= 100000000)
第四行包含l個整數,c1, c2, ... cl。(1 <= ci <= 100000000)
對於30%的資料, 1 <= n, m, l <= 100
對於60%的資料,1 <= n, m, l <= 1000
對於100%的資料,1 <= n, m, l <= 100000
輸出輸出最小的d。
樣例輸入
3 3 3
170 180 190
195 185 175
180 160 200
樣例輸出
10 思路:
方法1:暴力破解
偽**如下:
ans=max_int;
for i=1...n
for j=1...m
for k=1...l
s=|ai-bi|+|bj-cj|+|ck-ak|;
if(s#include using namespace std;
int n, m, l;
int a[100010], b[100010], c[100010];
long long ans;
void test(long long x,long long y,long long z)
}int main()
for (int i = 1; i <= m; i++)
for (int i = 1; i <= l; i++)
a[0] = b[0] = c[0] = -1000000000;
a[n + 1] = b[n + 1] = c[n + 1] = 1000000000;
sort(a, a + n + 1);
sort(b, b + n + 1);
sort(c, c + n + 1);
ans = 10000000000;
for (int i = 1, j = 0, k = 0; i <= n;i++)
cout << ans << endl;
return 0;
}
Hihocoder 1514 偶像的條件
解題思路 其實就是隨意搞下就行。求 a b b c c a 的最小值 顯然列舉a,然後二分整個找到離a最近的b,再二分整個找到離a最近的c和離b最近的c 比較一下誰最近,就可以o nlogn 搞出來了。include include include include include include i...
HihoCoder 1514 偶像的條件
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 小hi的學校正面臨著廢校的大危機。面對學校的危機,小hi同學們決定從abc三個班中各挑出一名同學成為偶像。成為偶像團體的條件之一,就是3名團員之間的身高差越小越好。已知abc三個班同學的身高分別是a1.an,b1.bm 和 c...
HihoCoder 1514 偶像的條件(二分法)
小hi的學校正面臨著廢校的大危機。面對學校的危機,小hi同學們決定從abc三個班中各挑出一名同學成為偶像。成為偶像團體的條件之一,就是3名團員之間的身高差越小越好。已知abc三個班同學的身高分別是a1.an,b1.bm 和 c1.cl。請你從中選出3名同學ai,bj,ck使得d ai bj bj c...