先来看题目要求
即给一排无限长的路灯,在最开始,将所有路灯设置为关闭状态,然后分别打开a的倍数的路灯,一直到a的t倍数的的路灯
给定两个数a,t
注意其中a一定是六位小数,而t是一个正整数
我们不妨假定关闭状态为0,打开状态为1
过题代码:
#include<bits/stdc++.h>
using namespace std;
int a[2000001],n;
//a*t的最大值不超过2000000
double x,y;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x>>y;//输入n个a和t
for(double j=1;j<=y;++j){
if(a[int(j*x)]==0)
a[int(j*x)]=1;//最开始如果为关闭,则打开,标记状态为1
else
a[int(j*x)]=0;
}
}
for(int i=1;;i++){
if(a[i]==1){
cout<<i;//输出最后状态为打开的路灯编号
break;
}
}
return 0;
}