ТПУ: основной тур
C. Рефакторинг
Программист Витя только что закончил рефакторинг кодовой базы своего проекта, и теперь ему нужно убедиться, что программа всё ещё выдаёт тот же результат, что и до рефакторинга.
У хороших проектов есть заранее написанные тесты для таких случаев, но эта задача — не про хорошего программиста.
Программа Вити генерирует на выходе n целых чисел. Витя запускает старую и новую версию программы и сравнивает результаты.
Он не хочет сравнивать наборы чисел целиком, вместо этого он случайным образом выбирает число из первого набора и сравнивает с соответствующим числом из второго. Если они оказываются одинаковыми, то он считает, что программа всё ещё работает как прежде.
Напишите программу, которая определит, с какой вероятностью Виктор обнаружит ошибку в работе новой версии программы.
Первая строка входных данных содержит одно целое число n — количество чисел, генерируемых программой Вити (1 \leqslant n \leqslant 10^4).
Вторая и третья строки содержат по n целых чисел, разделённых пробелами — вывод старой и новой версии программы соответственно. Каждое из генерируемых чисел по модулю не превосходит 10^{9}.
Требуется вывести вероятность, с которой Витя обнаружит ошибку в работе новой версии программы. Ответ должен быть указан с относительной или абсолютной погрешностью не более 10^{-6}.
Стандартный ввод | Стандартный вывод |
---|---|
5 3 14 15 92 65 3 18 15 92 28 | 0.4000000 |