Pagini recente » Cod sursa (job #569486) | Cod sursa (job #2319271) | Cod sursa (job #100483) | Cod sursa (job #1365137) | Cod sursa (job #1375926)
#include<fstream>
#include<cmath>
using namespace std;
long long valoare(long long poz)
{
long long offset,kmax,first;
double k2;
k2=(-1+sqrt(1+8*poz))/2;
if(k2==(long long)k2)
{
kmax=k2-1;
}
else
{
kmax=(long long)k2;
}
first=kmax*(kmax+1);
offset=poz-first/2;
return first+offset;
}
long long pozitie(long long valoare)
{
double k2;
long long kmax;
k2=(-1+sqrt(1+4*valoare))/2;
if(k2==(long long)k2)
{
kmax=k2-1;
}
else
{
kmax=(long long)k2;
}
return valoare-kmax*(kmax+1)/2;
}
int main()
{
long long t,n,R,i,v,v2,v3,j,poz,ok;
ifstream fin("progresie.in");
ofstream fout("progresie.out");
fin>>t;
while(t>0)
{
fin>>n>>R;
ok=0;
i=1;
while(ok==0)
{
v=valoare(i);
if(v-R>0)
{
poz=pozitie(v-R);
v2=valoare(poz);
if(v2==v-R)
{
i++;
continue;
}
}
v3=v;
for(j=1;j<=n-1;j++)
{
v=v+R;
poz=pozitie(v);
v2=valoare(poz);
if(v2!=v)
{
break;
}
}
if(j==n)
{
ok=1;
break;
}
i++;
}
fout<<v3<<'\n';
t--;
}
return 0;
}