```cpp
#include <iostream>
#include<vector>
#include<cmath>
using namespace std;
int main(){
int n = 0;
cin >> n;
vector<double>a(n,0);
vector<int>t(n, 0);
vector<double>a_t(n, 0);
for (int i = 0; i < n; i++) {
cin >> a[i] >> t[i];
a_t[i] = a[i] * t[i];
}//三个数组的值输入完毕
for (int i = 0; i < n - 1; i++) {
if (a_t[i] > a_t[i + 1]) {
a_t[i + 1] = a_t[i];
}
}//找出了数组需要的最大数量a_t[i + 1]
vector<bool>light(ceil(a_t[n - 1]), 0);
for (int i = 0; i < n; i++) {
for (int j = 0; j < t[i]; j++) {//t[i]代表第i+1个t的大小
if (light[floor(a[i] * (t[i]-j))-1] == 1) {
light[floor(a[i] * (t[i] - j)) - 1] = 0;
}
else {
light[floor(a[i] * (t[i] - j)) - 1] = 1;
}//转换轮到的开关状态
}
}
for (int i = 0; i < ceil(a_t[n - 1]); i++) {
if (light[i]) {
cout << i + 1;
break;
}
}
std::system("pause");
return 0;
}
```
by AliLovePeach @ 2023-11-02 21:14:38
@[AliLovePeach](/user/1180674) 还没仔细看,通常是精度不够的问题
by cff_0102 @ 2023-11-02 21:16:01
都说了是6位
by TT666_ @ 2023-11-30 22:21:27