题目大意
有无限颗糖果一个小糖果重量为
X,一个大糖果重量为
Y。要求给每个小孩都分个大糖果和小糖果使数量之和等于
Ai 且质量之和都相等。
分析
令第
i 个小孩拿到的大糖果数量为
Bi,则小糖果数量为
Ai−Bi,每人拿糖果的质量之和为
W。可得
X×(Ai−Bi)+Y×Bi=W。
整理后:
Bi=Y−XW−Ai×X。
重点:因为每个
Bi 都是整数所以
W≡Ai×X(modY−X)。
计算
W 的取值范围
i=1maxn(Ai×X)≤W≤i=1minn(Ai×Y) 又可通过
A1×Xmod(Y−X) 计算出余数
r,计算出范围内满足条件的最大的
W 即可,若不存在输出
−1。
获得
W 后可依次计算
i=1∑nBi ,注意过程中如果
A[i]×Xmod(Y−X) 不为
r 则输出
−1,最后输出
ans 即为答案。