CF628F Bear and Fair Set
题目描述
Limak 是一只灰熊。他又大又可怕。当你在森林里悠闲散步时,突然遇到了他。对你来说,这真是不幸。除非你能展示你的数学技能,否则他会吃掉你所有的饼干。为了考验你,Limak 会给你一个谜题。
众所周知,Limak 和每只熊一样,都拥有一个数字集合。你知道关于这个集合的一些信息:
- 集合中的元素是互不相同的正整数。
- 集合中元素的个数是 $n$。$n$ 能被 $5$ 整除。
- 所有元素都在 $1$ 到 $b$ 之间(包括 $1$ 和 $b$):熊不知道大于 $b$ 的数。
- 对于每个 $r \in \{0,1,2,3,4\}$,集合中恰好有 $\frac{n}{5}$ 个元素模 $5$ 后余 $r$。(即,有 $\frac{n}{5}$ 个元素能被 $5$ 整除,$\frac{n}{5}$ 个元素形如 $5k+1$,$\frac{n}{5}$ 个元素形如 $5k+2$,以此类推。)
Limak 神秘地微笑着,给了你 $q$ 个关于他集合的提示。第 $i$ 个提示如下:“如果你只看集合中数值在 $1$ 到 $upTo_i$ 之间(包含 $upTo_i$)的元素,你会发现集合中有恰好 $quantity_i$ 个这样的元素。”
过一会儿 Limak 就会告诉你真正的谜题,但你总感觉有哪里不对劲……那个微笑太诡异了。你开始思考可能的原因。也许 Limak 欺骗了你?还是他是一只公平的灰熊?
给定 $n$、$b$、$q$ 和这些提示,判断 Limak 是否可能是“公平”的,即是否存在至少一个集合满足所有给定的约束条件。如果存在,输出 “fair”;否则,输出 “unfair”。
输入格式
第一行包含三个整数 $n$、$b$ 和 $q$($5 \leq n \leq b \leq 10^4$,$1 \leq q \leq 10^4$,$n$ 能被 $5$ 整除)——集合大小,集合元素最大值,提示的个数。
接下来 $q$ 行描述这些提示。第 $i$ 行包含两个整数 $upTo_i$ 和 $quantity_i$($1 \leq upTo_i \leq b$,$0 \leq quantity_i \leq n$)。
输出格式
如果存在至少一个集合满足所有要求并满足所有提示,输出 “fair”。否则,输出 “unfair”。
说明/提示
在第一个样例中,只有一个集合满足所有条件:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}。
在第二个样例中,也只有一个集合满足所有条件:{6, 7, 8, 9, 10, 11, 12, 13, 14, 15}。
很容易看出,第三个样例没有满足所有条件的集合。所以 Limak 欺骗了你 :-(
由 ChatGPT 5 翻译