Cod sursa(job #1057485)

Utilizator sirbu11Sirbu Claudiu Cosmin sirbu11 Data 14 decembrie 2013 14:55:56
Problema Progresie Scor 0
Compilator cpp Status done
Runda ONIS 2014, Runda 1 Marime 0.75 kb
#include<stdio.h>
#include<math.h>
 
int main()
{
 double x1,x,r,nrelem,ok,i;
 long long int y;
 int n,t;
 FILE *f=fopen("progresie.in","r");
 FILE *g=fopen("progresie.out","w");
 fscanf(f,"%d",&t);
 for(i=1;i<=t;i++)
 {
  fscanf(f,"%d%lf",&n,&r);
  ok=0;
  x=1;
  nrelem=1;
  x1=x+(n-1)*r;
  y=x1;
  while(ok==0)
  {
   long long int radx,rad=sqrt(x1);
    
   if(rad<(x1-rad*rad)||(rad*rad)==x1)
       {
        nrelem++;
        x1=x1-r;
       }
   else
       {
        nrelem=0;
        x=x+1;
        radx=sqrt(x);
        if(radx>=(x-radx*radx)&&(radx*radx)!=x)
         x=radx*radx+radx+1;
        x1=x+(n-1)*r;
        y=x1;
       }
   if(nrelem==n)
        ok=1;
  }
  y=y-(n-1)*r;
  fprintf(g,"%lli\n",y);
 }
}