Pagini recente » Cod sursa (job #1543469) | Cod sursa (job #2471414) | Cod sursa (job #708232) | Cod sursa (job #957045) | Cod sursa (job #1097569)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("progresie.in");
ofstream out("progresie.out");
int n,r;
inline long long fst(int x){
return 1LL * x * (x - 1) + 1;
}
inline long long lst(int x){
return 1LL * x * x;
}
long long solve(){
in >> n >> r;
int k;
long long lo,hi;
long long st;
long long nlo, nhi;
for(k = 1 ; k ; ++k){
lo = fst(k);
hi = lst(k);
for(int i = 1 ; lo <= hi && i < n ; ++i){
lo += r, hi += r;
st = int(sqrt(lo - 1)) + 1;
nlo = fst(st);
nhi = lst(st);
lo = max(lo, nlo);
hi = min(hi, nhi);
}
if(lo <= hi)
return lo - (n - 1) * r;
}
}
int main(){
int T;
in >> T;
while(T--)
out << solve() << "\n";
return 0;
}