Pagini recente » Cod sursa (job #1752716) | Cod sursa (job #1148781) | Cod sursa (job #140365) | Cod sursa (job #2061564) | Cod sursa (job #2219990)
#include <fstream>
#include <math.h>
using namespace std;
fstream f1("progresie.in", ios::in);
fstream f2("progresie.out", ios::out);
int t;
long long n, r;
bool apsir(long long x)
{
long long rad=sqrt(x);
if(rad*rad!=x) rad++;
return (rad*(rad-1)+1<=x);
}
long long v(long long n, long long r)
{
int ok;
long long k, j, i;
///k max 10^4, n max 30
for(k=1; k*(k-1)+1<=(n-1)*r;k++) ///incepi din primele val blocuri
{
i=k*(k-1)+1;
ok=1;
for(j=1; (j<n)&&ok; j++)
if(!apsir(i+j*r)) ok=0;
if(ok) return i;
}
return (1+(n-1)*r)*((n-1)*r)+1;///sigur sol
}
int main()
{
f1>>t;
while(t--)
{
f1>>n>>r;
f2<<v(n, r)<<"\n";
}
return 0;
}