CF1321A Contest for Robots

题目描述

Polycarp 正在为机器人准备第一场编程竞赛。比赛共有 $n$ 道题目,许多机器人将参与比赛。每个机器人解决第 $i$ 道题目可以获得 $p_i$ 分,每个机器人的总分为它解决的所有题目的 $p_i$ 之和。对于每道题目,$p_i$ 是一个不小于 $1$ 的整数。 有两家专门生产解题机器人的公司,“Robo-Coder Inc.” 和 “BionicSolver Industries”,也将各自派出一台机器人参赛。Polycarp 了解这两家公司生产的机器人各自的优缺点,因此他确切知道每台机器人在比赛中能否解决每道题目。基于这些信息,他可以预测比赛结果,甚至操控结果。 出于某些原因(绝对不是因为贿赂),Polycarp 希望 “Robo-Coder Inc.” 的机器人在比赛中得分严格高于 “BionicSolver Industries” 的机器人。Polycarp 想要设置 $p_i$ 的值,使得 “Robo-Coder Inc.” 的机器人得分严格高于 “BionicSolver Industries” 的机器人。然而,如果 $p_i$ 的值过大,可能会引起怀疑,因此 Polycarp 希望最小化所有题目中 $p_i$ 的最大值。你能帮 Polycarp 求出最小可能的分值上界吗?

输入格式

第一行包含一个整数 $n$($1 \le n \le 100$),表示题目数量。 第二行包含 $n$ 个整数 $r_1, r_2, \ldots, r_n$($0 \le r_i \le 1$)。$r_i = 1$ 表示 “Robo-Coder Inc.” 的机器人能解决第 $i$ 道题目,$r_i = 0$ 表示不能。 第三行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($0 \le b_i \le 1$)。$b_i = 1$ 表示 “BionicSolver Industries” 的机器人能解决第 $i$ 道题目,$b_i = 0$ 表示不能。

输出格式

如果无论如何分配分值,“Robo-Coder Inc.” 的机器人都无法得分严格高于 “BionicSolver Industries” 的机器人,输出一个整数 $-1$。 否则,输出所有题目分值 $p_i$ 的最小可能最大值 $\max\limits_{i=1}^{n} p_i$,使得 “Robo-Coder Inc.” 的机器人得分严格高于 “BionicSolver Industries” 的机器人。

说明/提示

在第一个样例中,一种可行的分值分配为 $p = [3, 1, 3, 1, 1]$。此时 “Robo-Coder” 得到 $7$ 分,“BionicSolver” 得到 $6$ 分。 在第二个样例中,两台机器人都得 $0$ 分,分值分配无关紧要。 在第三个样例中,两台机器人都能解决所有题目,因此得分总是相等。 由 ChatGPT 4.1 翻译