Cod sursa(job #1056695)

Utilizator denisx304Visan Denis denisx304 Data 14 decembrie 2013 13:27:40
Problema Progresie Scor 0
Compilator c Status done
Runda ONIS 2014, Runda 1 Marime 1.06 kb
#include <stdio.h>
#include <math.h>
FILE *f,*g;
int t,n,r,number,counter,keep,i,light;
int verificare(long long number)
{
    long long left,right;
    if (sqrt(number)-(int)sqrt(number)==0) return 1;
    left=pow((int)sqrt(number),2)-1;
    right=pow((int)sqrt(number)+1,2);
    if (number<=left+(right-left)/2) return 0;
    else return 1;
}
int main()
{
    f=fopen("progresie.in","r");
    g=fopen("progresie.out","w");
    fscanf(f,"%d",&t);
    for (i=1;i<=t;i++)
    {
        fscanf(f,"%d%d",&n,&r);
        number=counter=0;
        light=1;
        for (;light;)
        {
            number++;
            counter=0;
            keep=number;
            for (;;)
                if (verificare(number))
                {
                    counter++;
                    number+=r;
                }
                else break;
                if (counter==n)
                {
                    printf("%d\n",keep);
                    light=0;
                    break;
                }
        }
    }
    return 0;
}