Pagini recente » Cod sursa (job #2263976) | Cod sursa (job #161735) | Cod sursa (job #686141) | Cod sursa (job #2465698) | Cod sursa (job #1805339)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <math.h>
int IsInArray(int x)
{
unsigned long long i = sqrt(double(x-1))+1;
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)
{
return 1;
//if it fits in a bloc
unsigned long long i = sqrt(double(v-1))+1;
if(v+(n-1)*r <= i*i)
{
return 1;
}
else
{
return 0;
}
/*n--;
v+=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);
bool done = false;
for(unsigned long long i = 1; i<=ULLONG_MAX; ++i)
{
for(unsigned long long j = i*i-i+1; j<=i*i && j <= ULLONG_MAX; ++j)
if(RespectsCondition(j, n, r))
{
fprintf(fout, "%llu\n", j);
done = true;
break;
}
if(done)
{
break;
}
}
}
//fprintf(fout, "%llu\n", clock() - begin);
return 0;
}