rt,本地 OJ 跑得飞快,到这就 T 了。
#include <bits/stdc++.h>
#pragma GCC optimize(2)
#define int long long
using namespace std;
const int N = 2e5 + 5;
struct node {
int a, b, sum;
#define sum(p) t[p].sum
#define a(p) t[p].a
#define b(p) t[p].b
} t[N];
int _, n, l, r, ans;
void init() {
memset(t, 0, sizeof t);
ans = 0;
}
inline int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
inline int lcm(int a, int b) { return a / gcd(a, b) * b; }
signed main() {
// freopen("sugar.in", "r", stdin);
// freopen("sugar.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> _;
while (_--) {
init();
cin >> n;
for (int i = 1; i <= n; ++i) cin >> a(i) >> b(i), sum(i) = a(i) * b(i);
int Gcd = sum(1), Lcm = b(1);
for (int i = 2; i <= n; ++i) {
Gcd = gcd(Gcd, sum(i));
Lcm = lcm(Lcm, b(i));
if (Gcd % Lcm)
++ans, Gcd = sum(i), Lcm = b(i);
}
cout << ans + 1 << '\n';
}
return 0;
}