Cod sursa(job #2310506)

Utilizator NOSCOPEPROKENDYMACHEAMACUMVREAU NOSCOPEPROKENDY Data 31 decembrie 2018 21:34:10
Problema Progresie Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.65 kb
#include<cstdio>

#include<cmath>

using namespace std;

long long solve(long long grup,long long n,long long r){

long long nr=(grup-1)*grup+1,l=grup-1,x,a,i;

for(i=1;i<n;i++){

x=nr+i*r;

grup=1+(long long)sqrt(x-1);

a=(grup-1)*grup+1;

if (x+l<a)

return 0;

if (x<a)

l-=a-x,nr+=a-x;

else

if (x+l>a+grup-1)

l=a+grup-1-x;}

return nr;}

int main(){

freopen("progresie.in","r",stdin);

freopen("progresie.out","w",stdout);

long long t,i1,n,r,i,grup,x;

scanf("%lld",&t);

for(i1=1;i1<=t;i1++){

scanf("%lld%lld",&n,&r);

grup=1;

while(!(x=solve(grup,n,r)))

grup++;

printf("%lld\n",x);}

return 0;}