CCF GESP 2025年6月认证 C++ 5级
题目描述
班主任给上课专心听讲、认真完成作业的同学们分别发放了若干张课堂优秀券和作业优秀券。同学们可以使用这两种券找班主任兑换奖品。具体来说,可以使用 $a$ 张课堂优秀券和 $b$ 张作业优秀券兑换一份奖品,或者使用 $b$ 张课堂优秀券和 $a$ 张作业优秀券兑换一份奖品。
现在小 A 有 $n$ 张课堂优秀券和 $m$ 张作业优秀券,他最多能兑换多少份奖品呢?
输入格式
第一行,两个正整数 $n,m$,分别表示小 A 持有的课堂优秀券和作业优秀券的数量。
第二行,两个正整数 $a,b$,表示兑换一份奖品所需的两种券的数量。
输出格式
输出共一行,一个整数,表示最多能兑换的奖品份数。
样例说明
样例 1
8 8
2 1
5
样例 2
314159 2653589
27 1828
1599
数据范围
对于 $60\%$ 的测试点,保证 $1 \le a,b \le 100$,$1 \le n,m \le 500$。
对于所有测试点,保证 $1 \le a,b \le 10^4$,$1 \le n,m \le 10^9$。
题目描述
对于两个正整数 $a,b$,他们的最大公因数记为 $\gcd(a,b)$。对于 $k > 3$ 个正整数 $c_1,c_2,\dots,c_k$,他们的最大公因数为:
$$\gcd(c_1,c_2,\dots,c_k)=\gcd(\gcd(c_1,c_2,\dots,c_{k-1}),c_k)$$
给定 $n$ 个正整数 $a_1,a_2,\dots,a_n$ 以及 $q$ 组询问。对于第 $i(1 \le i \le q)$ 组询问,请求出 $a_1+i,a_2+i,\dots,a_n+i$ 的最大公因数,也即 $\gcd(a_1+i,a_2+i,\dots,a_n+i)$。
输入格式
第一行,两个正整数 $n,q$,分别表示给定正整数的数量,以及询问组数。
第二行,$n$ 个正整数 $a_1,a_2,\dots,a_n$。
输出格式
输出共 $q$ 行,第 $i$ 行包含一个正整数,表示 $a_1+i,a_2+i,\dots,a_n+i$ 的最大公因数。
样例说明
样例 1
5 3
6 9 12 18 30
1
1
3
样例 2
3 5
31 47 59
4
1
2
1
4
数据范围
对于 $60\%$ 的测试点,保证 $1 \le n \le 10^3$,$1 \le q \le 10$。
对于所有测试点,保证 $1 \le n \le 10^5$,$1 \le q \le 10^5$,$1 \le a_i \le 1000$。