Cod sursa(job #2285355)

Utilizator suceavaSMSuceava Edy suceavaSM Data 18 noiembrie 2018 14:48:03
Problema Progresie Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.6 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;}