Cod sursa(job #1803875)

Utilizator alex.grigorasAlex Grigoras alex.grigoras Data 11 noiembrie 2016 23:10:13
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.22 kb
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <math.h>
#include <bitset>

 
int IsInArray(int x)
{
    for(unsigned long long i=1; i<UINT_MAX; i++)
    {
        unsigned long long v1 = i*(i-1);
        unsigned long long v2 = v1 + i;
		unsigned long long v3 = v2+i;
        if(v1 < x && x <= v2)
        {
            return 1;
        }
		else if(v2 < x && x <= v3)
		{
			return 0;
		}
    }
    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;
}