20pts 又wa又t
#include <bits/stdc++.h>
using namespace std;
const int maxn = 20;
int c[maxn], p[maxn], l[maxn];
int M, nowm, n, x, y, g;
void exgcd(int a, int b) {
if (b == 0) {
x = 1;
y = 0;
g = a;
return;
}
exgcd(b, a % b);
int t = x;
x = y;
y = t - (a / b) * y;
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d %d %d", &c[i], &p[i], &l[i]);
M = max(M, c[i]);
}
while (++nowm) {
bool fl = 1;
for (int i = 1; i <= n && fl; i++) {
for (int j = i + 1; j <= n && fl ; j++) {
exgcd(p[i] - p[j], nowm);
if ((c[j] - c[i]) % g)
continue;
x = x * ((c[j] - c[i]) / g);
int ret = nowm / g;
if ((x % ret + ret) % ret <= min(l[i], l[j]))
fl = 0;
}
}
if (fl)
break;
}
printf("%d\n", max(M, nowm));
}