Разбор
Отсортируем координаты мышей и нор моответственно в массивах и . Мышь должна спрятаться в нору . Вычисляем максимум среди модулей разностей .
Пример
Отсортируем массивы с координатами мышей и нор. Мыши поставим в соответствие нору .
Ответ достигается для четвертой мыши, которой следует бежать из точки с координатой в нору с координатой .
Реализация алгоритма
Объявим рабочие массивы и .
#define MAX 100001 int a[MAX], b[MAX];
Читаем входные данные.
scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = 0; i < n; i++) scanf("%d", &b[i]);
Сортируем массивы.
sort(a, a + n); sort(b, b + n);
Вычисляем максимум среди модулей разностей .
res = 0; for (i = 0; i < n; i++) if (abs(b[i] - a[i]) > res) res = abs(b[i] - a[i]);
Выводим ответ.
printf("%d\n", res);
Java реализация
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); Integer a[] = new Integer[n]; for(int i = 0; i < n; i++) a[i] = con.nextInt(); Integer b[] = new Integer[n]; for(int i = 0; i < n; i++) b[i] = con.nextInt(); Arrays.sort(a); Arrays.sort(b); int res = 0; for (int i = 0; i < n; i++) if (Math.abs(a[i] - b[i]) > res) res = Math.abs(a[i] - b[i]); System.out.println(res); con.close(); } }
Python реализация
Читаем входные данные.
n = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split()))
Сортируем массивы.
a.sort() b.sort()
Вычисляем максимум среди модулей разностей .
res = 0 for i in range(n): if abs(a[i] - b[i]) > res: res = abs(a[i] - b[i])
Выводим ответ.
print(res)