Processing math: 100%

Областная олимпиада по информатике. 10-11 классы. 2014-2015 учебный год.


Задача B. Тима и точки

Ограничение по времени:
1 секунда
Ограничение по памяти:
64 мегабайта

Один очень сильный мальчик по имени Тима поймал Вас на переулке Манхэттена. Единственный шанс уйти без повреждений — решить следующую задачу! Даны N точек в пространстве. Требуется найти две самые удалённые точки. Расстояние между точками (x1;y1;z1) и (x2;y2;z2) равно |x1x2|+|y1y2|+|z1z2|. Решите задачу и спасите себя!
Формат входного файла
В первой строке задано целое число N (2N105) — количество точек. В следующих N строках заданы сами точки — по три целых числа xi; yi; zi на каждой строке. Все координаты точек находятся в интервале [106106].
Формат выходного файла
Выведите ответ к задаче.
Примеры:
Вход
4
 0  9 -8
-2  5  3
 6 -6  2
 7  1  6
Ответ
31
Замечание
Ответ 31, потому что расстояние между 1-ой и 3-ей точками равно |06|+|9(6)|+|82|=6+15+10=31;
2N104 — для 30% тестов.
посмотреть в олимпиаде

Комментарий/решение:

пред. Правка 2   -2
6 года 4 месяца назад #

показать/скрыть код

C++

пред. Правка 2   -2
6 года 4 месяца назад #

TL

  -1
6 года 3 месяца назад #

#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;

}ВВедите тескт...показать/скрыть код

C++