Pagini recente » Cod sursa (job #1725408) | Cod sursa (job #928765) | Cod sursa (job #2600393) | Cod sursa (job #869523) | Cod sursa (job #1911922)
#include <stdio.h>
#include <math.h>
long long group(long long x) {
long long i = sqrt(x) - 2;
while (x > i * i) i++;
return i;
}
int main() {
freopen("progresie.in", "r", stdin);
freopen("progresie.out", "w", stdout);
int t;
scanf("%i", &t);
int n, r;
while (t--) {
scanf("%i%i", &n, &r);
long long i;
for (i = 1; 1; ++i) {
long long nr = i * i - i + 1;
long long limit = i - 1;
long long j;
for (j = 0; j < n - 1; ++j) {
nr += r;
long long g = group(nr);
long long first = g * g - g + 1;
long long last = g * g;
if (limit < first - nr) {
break;
}
if (nr < first) nr = first;
if (limit > last - nr) limit = last - nr;
}
if (j == n - 1) {
printf("%lli\n", nr - (n - 1) * r);
break;
}
}
}
return 0;
}