题目描述
小朋友们都喜欢放鞭炮,尤其是男生在春节时,什么爆竹、摔炮还有各种烟花,玩得不亦乐乎。
今年的春节,小冲就不开心了,因为他在踢足球的时候把脚给扭伤了,现在只能躺在床上听着外面的小伙伴们放鞭炮的声音发呆,他发现,有时会有几个鞭炮同时想,有时却只有一个鞭炮想。爸爸知道小冲是个信息学竞赛爱好者,于是给他出了一个问题:有3个人同时开始放鞭炮,甲每2秒放一个,乙每3秒放一个,丙每5秒放一个,每个人都放10个鞭炮,你一共能听到多少次鞭炮响声呢?
小冲觉得这个问题太简单了,他想把程序编写得能够满足更有难度的要求:一共有n个小朋友同时开始放鞭炮,每个人放鞭炮间隔的时间不同,所放的鞭炮的数量也不同,等到大家都放完自己的鞭炮,一共能听到多少次鞭炮响声呢?小冲编写这个程序当然没问题,你能编写出来吗?
输入
第一行是一个自然数:n,表示一共有n个小朋友放鞭炮;
然后往下一共有n行,每行有两个自然数,i和j,表示这个小朋友每i秒种放一个鞭炮,一共放j个。
取值范围:1<=n<=100,1<=i,j<=1000。
输出
只有一个数据:所有小朋友放完鞭炮后,小冲一共听到了多少次鞭炮的响声。
样例输入 Copy
3 2 5 3 5 5 4
样例输出 Copy
11
提示
甲小朋友放完5个,乙放完5个,丙放完4个鞭炮后,小冲一共听到了11次鞭炮的响声。
#include <iostream>
#include<cmath>
#include<iomanip>
#include<cstdlib>
#include<cstdio>
#include<fstream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<set>
#include<string>
#include<deque>
#include<map>
#include<queue>
#include<utility>
using namespace std;
int t1[100], num[100];
int main() {
int n, i, t,sum = 0, x = 0;
cin >> n;
for (i = 0; i < n; i++) {
cin >> t1[i] >> num[i];
}
x = t1[0] * num[0];
for (i = 1; i < n; i++) {
if (x < t1[i] * num[i])
x = t1[i] * num[i];
}
for (t = 0; t < x; t++) {
for (i = 0; i < n; i++) {
if ((t % t1[i] == 0) && (t / t1[i] < num[i])) {
sum++;
break;
}
}
}
cout << sum;
}