Областная олимпиада по информатике. 10-11 классы. 2014-2015 учебный год.
Задача B. Тима и точки
Ограничение по времени:
1 секунда
Ограничение по памяти:
64 мегабайта
Один очень сильный мальчик по имени Тима поймал Вас на переулке Манхэттена. Единственный шанс уйти без повреждений — решить следующую задачу! Даны N точек в пространстве. Требуется найти две самые удалённые точки. Расстояние между точками (x1;y1;z1) и (x2;y2;z2) равно |x1−x2|+|y1−y2|+|z1−z2|. Решите задачу и спасите себя!
Формат входного файла
В первой строке задано целое число N (2≤N≤105) — количество точек. В следующих N строках заданы сами точки — по три целых числа xi; yi; zi на каждой строке. Все координаты точек находятся в интервале [−106…106].
Формат выходного файла
Выведите ответ к задаче.
Примеры:
Вход 4 0 9 -8 -2 5 3 6 -6 2 7 1 6Ответ
31
Замечание
Ответ 31, потому что расстояние между 1-ой и 3-ей точками равно |0−6|+|9−(−6)|+|−8−2|=6+15+10=31;
2≤N≤104 — для 30% тестов.
Комментарий/решение:
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=10e5+7;
int a[N],b[N],c[N];
main(){
int mx=-N;
int n;
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i]>>b[i]>>c[i];
}
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
mx=max(mx,abs(a[i]-a[j])+abs(b[i]-b[j])+abs(c[i]-c[j]));
}
}
cout<<mx;
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.