Cod sursa(job #1803883)

Utilizator alex.grigorasAlex Grigoras alex.grigoras Data 11 noiembrie 2016 23:31:35
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.1 kb
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <math.h>
 
int IsInArray(int x)
{
	unsigned long long i = ceil(sqrt(double(x)));
	unsigned long long v2 = i*i;
    unsigned long long v1 = v2-i;
	unsigned long long v3 = v2+i;
    if(v1 < x && x <= v2)
    {
        return 1;
    }
	return 0;
}
 
int RespectsCondition(unsigned long long v, int n, int r)
{
    while(n>0)
    {
        if(IsInArray(v) == 0)
        {
            return 0;
        }
        v +=r;
        n--;
    }

	return 1;
}
 
int main()
{
    clock_t begin = clock();
    FILE* fin = fopen("progresie.in","r");
    FILE* fout = fopen("progresie.out","w");
  
    int T;
    fscanf(fin, "%d", &T);
    for(int t=0; t<T; t++)
    {
        int n, r;
        fscanf(fin, "%d %d", &n, &r);
        for(unsigned long long i = 1; i<ULLONG_MAX; i++)
        {
            if(RespectsCondition(i, n, r))
            {
                fprintf(fout, "%llu\n", i);
				break;
            }
        }
    }
 
    //fprintf(fout, "%llu\n", clock() - begin);
	return 0;
}