Pagini recente » Cod sursa (job #151012) | Cod sursa (job #2233680) | Cod sursa (job #3204450) | Cod sursa (job #755032) | Cod sursa (job #2017509)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("progresie.in");
ofstream out("progresie.out");
int t, n, r;
long long result() {
for(int i = 0; 1; i++) {
long long start = 1LL * (i) * (i + 1) + 1;
long long margin = i;
bool ok = 1;
for(int j = 1; j < n; j++) {
long long low = start + 1LL * j * r;
long long high = low + margin;
int k = sqrt(low - 1);
long long low2 = 1LL * k * (k + 1) + 1;
long long high2 = 1LL * (k + 1) * (k + 1);
if(high < low2) {
ok = 0;
break;
} else if(low < low2) {
start += low2 - low;
margin -= low2 - low;
} else if(high2 < high) {
margin -= high - high2;
}
}
if(ok)
return start;
}
}
int main()
{
in >> t;
for(int i = 1; i <= t; i++) {
in >> n >> r;
out << result() << '\n';
}
return 0;
}