Pagini recente » Cod sursa (job #2087729) | Cod sursa (job #898274) | Cod sursa (job #1253776) | Cod sursa (job #499200) | Cod sursa (job #2564073)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("progresie.in");
ofstream fout ("progresie.out");
long long solve(int n, int r) {
int j;
long long start, aux, ok, st, dr, sti, dri;
for(int i = 0; ; i++) {
start = 1LL * i * (i + 1) + 1;
aux = i;
ok = 1;
for(int k = 1; k < n; k++) {
st = start + 1LL * k * r;
dr = st + aux;
j = (int)sqrt(st - 1);
sti = 1LL * j * (j + 1) + 1;
dri = 1LL * (j + 1) * (j + 1);
if (dr < sti){
ok = 0;
break;
}
if (st < sti){
start += sti - st;
aux -= sti - st;
}
else if (dr > dri)
aux -= dr - dri;
}
if (ok)
return start;
}
}
int main()
{
int n, r, t;
fin >> t;
while(t--) {
fin >> n >> r;
fout << solve(n, r) << "\n";
}
return 0;
}