题目链接:http://acm.zzuli.edu.cn/problem.php?id=2506
时间限制: 1 Sec 内存限制: 128 MB
题目描述
2019年建国的魔法学院招了一批学生,下面仅仅给出了24个学生的名单:
XIAO KEAI
XIAO TAOQI
XIAO TIAOPI
XIAO CONGMING
XIAO TIANCAI
XIAO LINJIE
XIAO KAIXIN
XIAO CHAOYUE
XIAO ZHONGYAO
XIAO TIANXIN
XIAO NAOHU
XIAO BOJUE
XIAO FEILONG
XIAO BEIBEI
XIAO LINGLONG
XIAO ZUZONG
XIAO TIANTIAN
XIAO BAOZI
XIAO TUANTUAN
XIAO YUANYUAN
XIAO QINGYU
XIAO YUER
XIAO DONGDONG
XIAO MING
好像都姓小啊!!!
踏进校门的瞬间学生们看见学院中有一条长长的阶梯,大家想知道这条长长的阶梯有多少阶。由于一眼望不到头,所以大家只能走上阶梯数一数了,由于阶梯太长,全部走完太累了,所以走到自己可以看见阶梯的最上方时就会停下数一数还有多少阶没有走,也是因为太长了,大家都没有记得自己走了多少阶,由于每个人的魔法能力不一定相同,所以每个人每步跨的阶梯数也是不同的。
本次游戏共有n个学生参与,第i个学生每步跨的阶梯数是ai,第i个学生最后停下时未走的阶梯数还有bi。
即a1,a2,...,an是第一个学生到第n个学生每步跨的阶梯数,b1,b2,...,bn是第一个学生到第n个学生停下时未走过的阶梯数。
输入数据保证所有学生的魔法能力都会大于0,且所有学生都还未走完阶梯。
魔法学院的建勋校长找你帮他求出这长长的阶梯的最少会有多少阶数?
设最少会有W个阶梯,题目数据保证答案0 < W <= 100000。
输入
第一行一个整数n。(1 <= n <= 100)
第二行n个整数,表示ai。(0 < ai <= W)
第三行n个整数,表示bi。(0 < bi <= W)
输出
输出一个整数表示阶梯的最少会有多少阶数。
样例输入
2
2 3
1 1
样例输出
1
提示
题目样例中W = 1,2名学生分别走了0,0步。
解题思路
这道题其实就是求一个数x满足所有的(x-b[i])%a[i]==0。数据很水,直接暴力就可以了。
#include <stdio.h>
int main() {
bool temp;
int a[110], b[110], n, ans;
while (~scanf("%d", &n)) {
ans = 0;
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
for (int i = 0; i < n; i++)
scanf("%d", &b[i]);
while (true) {
temp = false;
for (int i = 0; i < n && !temp; i++)
if ((ans - b[i]) % a[i] != 0)
temp = true, ans++;
if (!temp)
break;
}
printf("%d\n", ans);
}
return 0;
}