Pagini recente » Cod sursa (job #1982914) | Cod sursa (job #3222045) | Cod sursa (job #2686614) | Cod sursa (job #155953) | Cod sursa (job #1606687)
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("progresie.in");
ofstream g("progresie.out");
int t, n, r, i, isOk, block, cand, margin, where, myStart, myEnd, goodStart, goodEnd;
int main() {
f >> t;
for (; t; t--) {
f >> n >> r;
for (block = 1;; block++)
{
cand = block * (block - 1) + 1;
margin = block - 1;
isOk = 1;
for(i = 1; i < n; i++)
{
myStart = cand + r * i;
myEnd = myStart + margin;
where = 1 + (int)sqrt(myStart - 1);
goodStart = where * (where - 1) + 1;
goodEnd = where * where;
if(myEnd < goodStart)
{
isOk = 0;
break;
}
if (myStart < goodStart)
{
margin -= goodStart - myStart;
cand += goodStart - myStart;
}
else if (myEnd > goodEnd)
margin -= myEnd - goodEnd;
}
if(isOk)
{
g << cand << '\n';
break;
}
}
}
return 0;
}